diff --git a/libs/gui/SensorManager.cpp b/libs/gui/SensorManager.cpp
index dd37781..ead535e 100644
--- a/libs/gui/SensorManager.cpp
+++ b/libs/gui/SensorManager.cpp
@@ -59,12 +59,13 @@
 
 status_t SensorManager::assertStateLocked() const {
     if (mSensorServer == NULL) {
-        // try for one second
         const String16 name("sensorservice");
-        for (int i=0 ; i<4 ; i++) {
+        // try 10 times before giving up ...
+        for (int i = 0; i < 10; ++i) {
             status_t err = getService(name, &mSensorServer);
             if (err == NAME_NOT_FOUND) {
-                usleep(250000);
+                // Sleep for 1 second before retrying.
+                sleep(1);
                 continue;
             }
             if (err != NO_ERROR) {
@@ -73,6 +74,10 @@
             break;
         }
 
+        if (mSensorServer == NULL) {
+            ALOGE("FATAL getsensorservice returned` NULL");
+        }
+
         class DeathObserver : public IBinder::DeathRecipient {
             SensorManager& mSensorManger;
             virtual void binderDied(const wp<IBinder>& who) {
