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