diff --git a/src/dynamixel_can.cpp b/src/dynamixel_can.cpp
index d023386cf78a4cb9bd94a6c5e11921738e135cbf..2fd46f5a0c6b74d1a6b1e5fa60025ad1e66775dd 100644
--- a/src/dynamixel_can.cpp
+++ b/src/dynamixel_can.cpp
@@ -122,7 +122,7 @@ unsigned char CDynamixelCAN::receive_status_packet_v1(unsigned char **data,unsig
       do{
         if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->rx_frame_id))==0)
         {
-          this->event_server->wait_all(events,100);
+          this->event_server->wait_all(events,500);
           num=((CCAN *)this->comm_dev)->get_num_bytes(rx_frame_id);
         }
         if((read+num)>1024)
@@ -132,7 +132,8 @@ unsigned char CDynamixelCAN::receive_status_packet_v1(unsigned char **data,unsig
         }
         else
         {
-          ((CCAN *)this->comm_dev)->read(rx_frame_id,&data_int[read],num);
+          if(num != 0)
+            ((CCAN *)this->comm_dev)->read(rx_frame_id,&data_int[read],num);
           read+=num;
         }
         this->sync_packet_v1(data_int,read,&start);  
@@ -143,7 +144,7 @@ unsigned char CDynamixelCAN::receive_status_packet_v1(unsigned char **data,unsig
       {
         if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->rx_frame_id))==0)
         {
-          this->event_server->wait_all(events,100);
+          this->event_server->wait_all(events,500);
           num=((CCAN *)this->comm_dev)->get_num_bytes(this->rx_frame_id);
         }
         if((read-start+num)>length)
diff --git a/src/dynamixelserver_can.cpp b/src/dynamixelserver_can.cpp
index 8ebe02bee1f887a7f61a6ef7ec3baf39b9573d63..64259c174ac6431cfc90f960c0c58b0d65d3e761 100644
--- a/src/dynamixelserver_can.cpp
+++ b/src/dynamixelserver_can.cpp
@@ -160,7 +160,7 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v1(unsigned char **data
       do{
         if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id))==0)
         {
-          this->event_server->wait_all(events,20);
+          this->event_server->wait_all(events,200);
           num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id);
         }
         if((read+num)>1024)
@@ -181,7 +181,7 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v1(unsigned char **data
       {
         if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id))==0)
         {
-          this->event_server->wait_all(events,20);
+          this->event_server->wait_all(events,200);
           num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id);
         }
         if((read-start+num)>length)
@@ -243,7 +243,7 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v2(unsigned char **data
       do{
         if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id))==0)
         {
-          this->event_server->wait_all(events,20);
+          this->event_server->wait_all(events,200);
           num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id);
         }
         if((read+num)>1024)
@@ -264,7 +264,7 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v2(unsigned char **data
       {
         if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id))==0)
         {
-          this->event_server->wait_all(events,20);
+          this->event_server->wait_all(events,200);
           num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id);
         }
         if((read-start+num)>length)