diff --git a/libraries/AP_OpticalFlow/AP_OpticalFlow_ADNS3080.cpp b/libraries/AP_OpticalFlow/AP_OpticalFlow_ADNS3080.cpp
index fda2472619b25e12544c46319efee52a2650320a..b4fb52ddd9866e470c26d8069168e0e7dd9b7174 100644
--- a/libraries/AP_OpticalFlow/AP_OpticalFlow_ADNS3080.cpp
+++ b/libraries/AP_OpticalFlow/AP_OpticalFlow_ADNS3080.cpp
@@ -75,7 +75,7 @@ AP_OpticalFlow_ADNS3080::init(bool initCommAPI)
 	}
 
 	// check the sensor is functioning
-	if( retry < 3 ) {
+	while( retry < 3 ) {
 	    if( read_register(ADNS3080_PRODUCT_ID) == 0x17 )
 	        return true;
 	    retry++;