diff --git a/dynamixel_manager/src/dyn_manager.c b/dynamixel_manager/src/dyn_manager.c
index 3e70b32b8c366ee66e1ec271ee40da58c3c4ebe9..df5a9440cf9c65dbb6d0304675b24832c9fd864e 100644
--- a/dynamixel_manager/src/dyn_manager.c
+++ b/dynamixel_manager/src/dyn_manager.c
@@ -145,6 +145,7 @@ void dyn_manager_delete_op_single_master(TDynManager *manager,unsigned char mast
                                  manager->operations[master_index].single_op[op->op_index[master_index]].data=0x00000000;
                                }
                                manager->operations[master_index].num_single_op--;
+                               op->op_index[master_index]=0xFF;
                                break;
       case DYN_MANAGER_SYNC: if(op->op_index[master_index]<(DYN_MANAGER_MAX_NUM_SYNC_OP-1))
                              {
@@ -180,6 +181,7 @@ void dyn_manager_delete_op_single_master(TDynManager *manager,unsigned char mast
                                manager->operations[master_index].sync_op[op->op_index[master_index]].num_devices=0x00;
                              }
                              manager->operations[master_index].num_sync_op--;
+                             op->op_index[master_index]=0xFF;
                              break;
       case DYN_MANAGER_BULK: if(op->op_index[master_index]<(DYN_MANAGER_MAX_NUM_BULK_OP-1))
                              {
@@ -215,6 +217,7 @@ void dyn_manager_delete_op_single_master(TDynManager *manager,unsigned char mast
                                manager->operations[master_index].bulk_op[op->op_index[master_index]].num_devices=0x00;
                              }
                              manager->operations[master_index].num_bulk_op--;
+                             op->op_index[master_index]=0xFF;
                              break;
     }
   }
@@ -375,17 +378,14 @@ void dyn_manager_scan(TDynManager *manager)
       // get the servo module
       dyn_master_read_word(manager->masters[i],servo_ids[j],0x0000,&model);
       // store internal info
-      if(manager->devices[servo_ids[j]].master_index==0xFF && manager->devices[servo_ids[j]].model==0xFFFF)// device not yet initialized
-      {
-        manager->devices[servo_ids[j]].model=model;
-        manager->devices[servo_ids[j]].master_index=i;
-        manager->num_devices++;
-        manager->present_devices|=(0x00000001<<servo_ids[j]);
-        // pass the infor to each of the modules
-        for(k=0;k<DYN_MANAGER_MAX_NUM_MODULES;k++)
-          if(manager->modules[k]!=0x00000000)
-            dyn_module_add_device(manager->modules[k],servo_ids[j],model); 
-      }
+      manager->devices[servo_ids[j]].model=model;
+      manager->devices[servo_ids[j]].master_index=i;
+      manager->num_devices++;
+      manager->present_devices|=(0x00000001<<servo_ids[j]);
+      // pass the infor to each of the modules
+      for(k=0;k<DYN_MANAGER_MAX_NUM_MODULES;k++)
+        if(manager->modules[k]!=0x00000000)
+          dyn_module_add_device(manager->modules[k],servo_ids[j],model); 
       // else ignore device
     }
   }