diff --git a/master/domain.c b/master/domain.c
index e231e09e6835417f91b9710154238e598a07eefe..754d557aea056cd028e6b6403302fa63f91d02e4 100644
--- a/master/domain.c
+++ b/master/domain.c
@@ -99,11 +99,11 @@ int ec_domain_init(
     domain->master = master;
     domain->index = index;
     domain->data_size = 0;
-    domain->expected_working_counter = 0;
+    domain->expected_working_counter = 0x0000;
     domain->data = NULL;
     domain->data_origin = EC_ORIG_INTERNAL;
     domain->logical_base_address = 0L;
-    domain->working_counter = 0xFFFFFFFF;
+    domain->working_counter = 0xFFFF;
     domain->working_counter_changes = 0;
     domain->notify_jiffies = 0;
 
diff --git a/master/domain.h b/master/domain.h
index 389bb0c24021053d9a44d9b8e06d517f90cc3a4f..ba7116d3340918fe68a8e02ebabfd734c7e3ab21 100644
--- a/master/domain.h
+++ b/master/domain.h
@@ -64,13 +64,13 @@ struct ec_domain
     ec_master_t *master; /**< EtherCAT master owning the domain. */
     unsigned int index; /**< Index (just a number). */
     size_t data_size; /**< Size of the process data. */
-    unsigned int expected_working_counter; /**< Expected working counter. */
+    uint16_t expected_working_counter; /**< Expected working counter. */
     uint8_t *data; /**< Memory for the process data. */
     ec_origin_t data_origin; /**< Origin of the \a data memory. */
     struct list_head datagrams; /**< Datagrams for process data exchange. */
     uint32_t logical_base_address; /**< Logical offset address of the
                                      process data. */
-    unsigned int working_counter; /**< Last working counter value. */
+    uint16_t working_counter; /**< Last working counter value. */
     unsigned int working_counter_changes; /**< Working counter changes
                                              since last notification. */
     unsigned long notify_jiffies; /**< Time of last notification. */