diff --git a/dynamixel_base/include/dynamixel_slave_registers.h b/dynamixel_base/include/dynamixel_slave_registers.h
index 46cef2b79342753136e2514c7ce41c79383306a1..40f60b49385636e2d818fc5562af66efefb639b8 100644
--- a/dynamixel_base/include/dynamixel_slave_registers.h
+++ b/dynamixel_base/include/dynamixel_slave_registers.h
@@ -14,13 +14,15 @@
 #define RETURN_LEVEL                          0
 
 #define dyn_slave_control_eeprom_data(name,section_name,base_address1,base_address2,DEFAULT_DEVICE_MODEL,DEFAULT_FIRMWARE_VERSION,DEFAULT_DEVICE_ID,DEFAULT_BAUDRATE,DEFAULT_RETURN_DELAY,DEFAULT_RETURN_LEVEL) \
-unsigned short int name##_eeprom_data[] __attribute__ ((section (section_name)))={DEFAULT_DEVICE_MODEL&0x00FF,(DEFAULT_DEVICE_ID<<8) + base_address1+DEVICE_MODEL, \
-                                                                                  (DEFAULT_DEVICE_MODEL>>8)&0x00FF,(DEFAULT_DEVICE_ID<<8) + base_address1+DEVICE_MODEL+1, \
-                                                                                  DEFAULT_FIRMWARE_VERSION,(DEFAULT_DEVICE_ID<<8) + base_address1+FIRMWARE_VERSION, \
-                                                                                  DEFAULT_DEVICE_ID,(DEFAULT_DEVICE_ID<<8) + base_address1+DEVICE_ID, \
-                                                                                  DEFAULT_BAUDRATE,(DEFAULT_DEVICE_ID<<8) + base_address1+BAUDRATE, \
-                                                                                  DEFAULT_RETURN_DELAY,(DEFAULT_DEVICE_ID<<8) + base_address1+RETURN_DELAY, \
-                                                                                  DEFAULT_RETURN_LEVEL,(DEFAULT_DEVICE_ID<<8) + base_address2+RETURN_LEVEL};
+unsigned short int name##_eeprom_data[] __attribute__ ((section (section_name))) __attribute__ ((aligned (4)))= {\
+  DEFAULT_DEVICE_MODEL&0x00FF,base_address1+DEVICE_MODEL, \
+  (DEFAULT_DEVICE_MODEL>>8)&0x00FF,base_address1+DEVICE_MODEL+1, \
+  DEFAULT_FIRMWARE_VERSION,base_address1+FIRMWARE_VERSION, \
+  DEFAULT_DEVICE_ID,base_address1+DEVICE_ID, \
+  DEFAULT_BAUDRATE,base_address1+BAUDRATE, \
+  DEFAULT_RETURN_DELAY,base_address1+RETURN_DELAY, \
+  DEFAULT_RETURN_LEVEL,base_address2+RETURN_LEVEL \
+};
 
 
 #endif
diff --git a/dynamixel_base/src/dynamixel_slave_device.c b/dynamixel_base/src/dynamixel_slave_device.c
index 25ae4dfa993643d1b031add57f913495caace089..3d792dc043937e39ce47630f8ed16f8b8c868ee4 100644
--- a/dynamixel_base/src/dynamixel_slave_device.c
+++ b/dynamixel_base/src/dynamixel_slave_device.c
@@ -403,7 +403,7 @@ unsigned char dyn_slave_device_init(TDynamixelSlaveDevice *device,unsigned char
   device->bulk_read_pending=0x00;
 
   /* initialize memory module */
-  mem_init(&device->memory,address);
+  mem_init(&device->memory);
   mem_module_init(&device->mem_module);
   device->mem_module.data=device;
   device->mem_module.write_cmd=(void(*)(void *,unsigned short int, unsigned short int,unsigned char *))dyn_slave_device_write_cmd;