diff --git a/dynamixel_base/src/dynamixel_slave.c b/dynamixel_base/src/dynamixel_slave.c
index c284434a5c3eb68b2d6c28db76169c62a5016d51..3a79a051c12c12421b119f039f1431da8ba76a9e 100644
--- a/dynamixel_base/src/dynamixel_slave.c
+++ b/dynamixel_base/src/dynamixel_slave.c
@@ -95,6 +95,7 @@ unsigned char dyn_slave_check_new_packet(TDynamixelSlave *slave)
       if(buffer[0]!=0xFF) return 0x00;
       if(buffer[1]!=0xFF) return 0x00;
       if(buffer[2]!=0xFD) return 0x00;
+      if(dyn2_get_length(buffer)>MAX_DYN_SLAVE_RX_BUFFER_LEN) return 0x00;
       if(dyn2_check_checksum(buffer)!=0x01) return 0x00;
       return 0x01;
     }