diff --git a/libuvc_camera/src/camera_driver.cpp b/libuvc_camera/src/camera_driver.cpp
index aa4abce5fd1db92f30f53226a42b2f2345ff982e..487806055bb8d8d879a03ef90a88db95e3978192 100644
--- a/libuvc_camera/src/camera_driver.cpp
+++ b/libuvc_camera/src/camera_driver.cpp
@@ -167,6 +167,12 @@ void CameraDriver::ImageCallback(uvc_frame_t *frame) {
     timestamp = ros::Time::now();
   }
 
+  if(frame->data_bytes<frame->step*frame->height)
+  {
+    std::cout << "short frame" << std::endl;
+    return;
+  }
+
   boost::recursive_mutex::scoped_lock lock(mutex_);
 
   assert(state_ == kRunning);