diff --git a/dummy/domain.c b/dummy/domain.c
index 421807e71a0b93e61bc6c6c1f18afd354e990f9c..48878ced5f7e12d584ef0544d45b112d57583e53 100644
--- a/dummy/domain.c
+++ b/dummy/domain.c
@@ -42,9 +42,7 @@
 #include "../master/domain.h"
 #include "../master/master.h"
 
-/*****************************************************************************/
-
-uint8_t dummy_data[PAGE_SIZE];
+uint8_t *get_dummy_data(void);
 
 /*****************************************************************************/
 
@@ -58,7 +56,7 @@ int ecrt_domain_register_pdo(
         void **data_ptr /**< address of the process data pointer */
         )
 {
-	*data_ptr = dummy_data;
+	*data_ptr = get_dummy_data();
 	return 0;
 }
 
@@ -79,7 +77,7 @@ int ecrt_domain_register_pdo_list(
     const ec_pdo_reg_t *reg;
     
     for (reg = pdo_regs; reg->slave_address; reg++) {
-		*(reg->data_ptr) = dummy_data;
+		*(reg->data_ptr) = get_dummy_data();
     }
 
     return 0;
@@ -102,7 +100,7 @@ int ecrt_domain_register_pdo_range(
         void **data_ptr /**< address of the process data pointer */
         )
 {
-	*data_ptr = dummy_data;
+	*data_ptr = get_dummy_data();
     return 0;
 }
 
diff --git a/dummy/master.c b/dummy/master.c
index 5561cec4a012dabfd987d7574428d9632323bba5..74bafa36e40b2143e6caf9fdbdc10416d855a1e0 100644
--- a/dummy/master.c
+++ b/dummy/master.c
@@ -49,7 +49,8 @@
 
 ec_domain_t *ecrt_master_create_domain(ec_master_t *master)
 {
-    return (ec_domain_t *) 1;
+    static unsigned int domain = 1;
+    return (ec_domain_t *) domain++;
 }
 
 /*****************************************************************************/
@@ -80,7 +81,8 @@ ec_slave_t *ecrt_master_get_slave(
         uint32_t p
         )
 {
-    return (ec_slave_t *) 1;
+    static unsigned int slave = 1;
+    return (ec_slave_t *) slave++;
 }
 
 /*****************************************************************************/
diff --git a/dummy/module.c b/dummy/module.c
index 010ba1ac3379c662a45461f8f1f74b8810aeede9..de1b47b66e74bc0aef69f7512283ad7f2304272f 100644
--- a/dummy/module.c
+++ b/dummy/module.c
@@ -65,6 +65,23 @@ MODULE_VERSION(EC_MASTER_VERSION);
 
 /*****************************************************************************/
 
+#define DUMMY_SIZE (PAGE_SIZE * 8)
+
+uint8_t dummy_data[DUMMY_SIZE];
+off_t dummy_off = 0;
+
+uint8_t *get_dummy_data(void)
+{
+    off_t cur = dummy_off;
+
+    dummy_off += 64;
+    dummy_off %= DUMMY_SIZE;
+
+    return dummy_data + cur;
+}
+
+/*****************************************************************************/
+
 /**
  * Module initialization.
  * Initializes \a ec_master_count masters.
@@ -74,6 +91,9 @@ MODULE_VERSION(EC_MASTER_VERSION);
 int __init ec_init_module(void)
 {
     EC_INFO("Master DUMMY driver %s\n", EC_MASTER_VERSION);
+
+    memset(dummy_data, 0x00, DUMMY_SIZE);
+
     return 0;
 }