diff --git a/libraries/AP_GPS/AP_GPS_Auto.cpp b/libraries/AP_GPS/AP_GPS_Auto.cpp
index 78c8411f301d16cfb12a70ce6888442d457edf1e..c64d8fb46428b050fadd8a79a365b0169cb0e0c8 100644
--- a/libraries/AP_GPS/AP_GPS_Auto.cpp
+++ b/libraries/AP_GPS/AP_GPS_Auto.cpp
@@ -165,6 +165,17 @@ AP_GPS_Auto::_detect(void)
             break;
         }
 
+        // new style 3DR UBlox (April 2012)x
+        if (0xb5 == fingerprint[0] &&
+			0x62 == fingerprint[1] &&
+			0x0d == fingerprint[2] &&
+			0x01 == fingerprint[3]) {
+			// new style Ublox
+            gps = new AP_GPS_UBLOX(_port);
+            Serial.print_P(PSTR(" ublox "));
+            break;
+        }
+
         //
         // MTK v1.6
         //