diff --git a/src/dynamixel_motor.cpp b/src/dynamixel_motor.cpp
index 3d75e7486701bed8774b8889f7cee35e878a6262..857b9de8b609f83baffd1e08413905143ad29df3 100644
--- a/src/dynamixel_motor.cpp
+++ b/src/dynamixel_motor.cpp
@@ -446,9 +446,19 @@ void CDynamixelMotor::set_drive_mode(bool time_based,bool reverse)
   unsigned int value=0;
 
   if(time_based)
+  {
+    this->time_based_mode=true;
     value|=0x04;
+  }
+  else
+    this->time_based_mode=false;
   if(reverse)
+  {
+    this->reverse_mode=true;
     value|=0x01;
+  }
+  else
+    this->reverse_mode=false;
   this->write_register(this->registers[drive_mode],value);
 }