diff --git a/services/surfaceflinger/EventThread.cpp b/services/surfaceflinger/EventThread.cpp
index 47fa2f3..7c1aebe 100644
--- a/services/surfaceflinger/EventThread.cpp
+++ b/services/surfaceflinger/EventThread.cpp
@@ -60,7 +60,7 @@
         const sp<EventThread::Connection>& connection) {
     Mutex::Autolock _l(mLock);
     mDisplayEventConnections.add(connection);
-    mCondition.signal();
+    mCondition.broadcast();
     return NO_ERROR;
 }
 
@@ -68,7 +68,7 @@
         const wp<EventThread::Connection>& connection) {
     Mutex::Autolock _l(mLock);
     mDisplayEventConnections.remove(connection);
-    mCondition.signal();
+    mCondition.broadcast();
     return NO_ERROR;
 }
 
@@ -85,7 +85,7 @@
         const int32_t new_count = (count == 0) ? -1 : count;
         if (connection->count != new_count) {
             connection->count = new_count;
-            mCondition.signal();
+            mCondition.broadcast();
         }
     }
 }
@@ -95,32 +95,33 @@
     Mutex::Autolock _l(mLock);
     if (connection->count < 0) {
         connection->count = 0;
-        mCondition.signal();
+        mCondition.broadcast();
     }
 }
 
 void EventThread::onScreenReleased() {
     Mutex::Autolock _l(mLock);
-    // wait for an eventual pending vsync to be serviced
     if (!mUseSoftwareVSync) {
-        while (mVSyncTimestamp) {
-            mCondition.wait(mLock);
-        }
+        // disable reliance on h/w vsync
+        mUseSoftwareVSync = true;
+        mCondition.broadcast();
     }
-    // disable reliance on h/w vsync
-    mUseSoftwareVSync = true;
 }
 
 void EventThread::onScreenAcquired() {
     Mutex::Autolock _l(mLock);
-    mUseSoftwareVSync = false;
+    if (mUseSoftwareVSync) {
+        // resume use of h/w vsync
+        mUseSoftwareVSync = false;
+        mCondition.broadcast();
+    }
 }
 
 
 void EventThread::onVSyncReceived(int, nsecs_t timestamp) {
     Mutex::Autolock _l(mLock);
     mVSyncTimestamp = timestamp;
-    mCondition.signal();
+    mCondition.broadcast();
 }
 
 bool EventThread::threadLoop() {
