diff --git a/include/gui/SensorManager.h b/include/gui/SensorManager.h
index 9794d4e..3796067 100644
--- a/include/gui/SensorManager.h
+++ b/include/gui/SensorManager.h
@@ -101,6 +101,7 @@
         return *sensorManager;
     }
 
+    SensorManager(const String16& opPackageName);
     ~SensorManager();
 
     ssize_t getSensorList(Sensor const* const** list) const;
@@ -112,7 +113,6 @@
     // DeathRecipient interface
     void sensorManagerDied();
 
-    SensorManager(const String16& opPackageName);
     status_t assertStateLocked() const;
 
 private:
@@ -127,8 +127,6 @@
     const String16 mOpPackageName;
 };
 
-android::Mutex android::SensorManager::sLock;
-std::map<String16, SensorManager*> android::SensorManager::sPackageInstances;
 // ----------------------------------------------------------------------------
 }; // namespace android
 
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) {
