diff --git a/src/dynamixel_can.cpp b/src/dynamixel_can.cpp
index f512a8219f2283992c2414ab2a2bc06b24bea242..d29ca29c260d49002c779b607a82b7acdf4df3d6 100644
--- a/src/dynamixel_can.cpp
+++ b/src/dynamixel_can.cpp
@@ -207,7 +207,7 @@ unsigned char CDynamixelCAN::receive_status_packet_v2(unsigned char **data,unsig
       do{
         if((num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id))==0)
         {
-          this->event_server->wait_all(events,100);
+          this->event_server->wait_all(events,300);
           num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id);
         }
         if((read+num)>1024)
@@ -217,7 +217,9 @@ unsigned char CDynamixelCAN::receive_status_packet_v2(unsigned char **data,unsig
         }
         else
         {
-          ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],num);
+          
+          if(num!=0)
+            ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],num); 
           read+=num;
         }
         this->sync_packet_v2(data_int,read,&start);
diff --git a/src/dynamixelserver_can.cpp b/src/dynamixelserver_can.cpp
index 26dcd56598c963946a7b4509864f8b9f0280f69a..be8a152036ba76bb0e42ad649c83f4b755bc7c4c 100644
--- a/src/dynamixelserver_can.cpp
+++ b/src/dynamixelserver_can.cpp
@@ -253,7 +253,8 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v2(unsigned char **data
         }
         else
         {
-          ((CCAN *)this->comm_dev)->read(this->bus_info.rx_frame_id,&data_int[read],num);
+          if(num != 0)
+            ((CCAN *)this->comm_dev)->read(this->bus_info.rx_frame_id,&data_int[read],num);
           read+=num;
         }
         this->sync_packet_v2(data_int,read,&start);