diff --git a/src/dynamixel.cpp b/src/dynamixel.cpp
index 1d55e9be5fb0b7d3e1ed60a5ce6870a0756bf2db..5b4d047cc40ba129062a8522ffd297bdbd2dc47d 100644
--- a/src/dynamixel.cpp
+++ b/src/dynamixel.cpp
@@ -200,7 +200,7 @@ unsigned char CDynamixel::receive_status_packet_v1(unsigned char **data,unsigned
 unsigned char CDynamixel::receive_status_packet_v2(unsigned char **data,unsigned short int *len)
 {
   std::list<std::string> events;
-  unsigned char data_int[256];
+  unsigned char data_int[1024];
   int num=0,read=0,length=0,start=0;
   unsigned short int crc;
 
@@ -216,10 +216,10 @@ unsigned char CDynamixel::receive_status_packet_v2(unsigned char **data,unsigned
           this->event_server->wait_all(events,500);
           num=this->comm_dev->get_num_data();
         }
-        if((read+num)>256)
+        if((read+num)>1024)
         {
-          this->comm_dev->read(&data_int[read],256-read);
-          read=256;
+          this->comm_dev->read(&data_int[read],1024-read);
+          read=1024;
         }
         else
         {
@@ -237,10 +237,10 @@ unsigned char CDynamixel::receive_status_packet_v2(unsigned char **data,unsigned
           this->event_server->wait_all(events,500);
           num=this->comm_dev->get_num_data();
         }
-        if((read-start+num)>256)
+        if((read-start+num)>1024)
         {
-          this->comm_dev->read(&data_int[read],256-read);
-          read=256;
+          this->comm_dev->read(&data_int[read],1024-read);
+          read=1024;
         }
         else
         {
@@ -447,7 +447,7 @@ void CDynamixel::resync(void)
   do{
     try{
       this->comm_dev->write(&foo,1);
-      this->event_server->wait_all(events,100);
+      this->event_server->wait_all(events,500);
       num=this->comm_dev->get_num_data();
       data=new unsigned char[num];
       this->comm_dev->read(data,num);