diff --git a/libhwcomposer/hwc.cpp b/libhwcomposer/hwc.cpp
index 15b712c..86771bd 100644
--- a/libhwcomposer/hwc.cpp
+++ b/libhwcomposer/hwc.cpp
@@ -81,19 +81,18 @@
     hwc_context_t* ctx = (hwc_context_t*)(dev);
     ctx->overlayInUse = false;
 
-    if(ctx->isPoweredDown) {
-        ALOGW("SurfaceFlinger called %s after a POWERDOWN", __FUNCTION__);
-    }
-
-    for (uint32_t i = 0; i <numDisplays; i++) {
-        hwc_display_contents_1_t* list = displays[i];
-        ctx->dpys[i] = list->dpy;
+    for (uint32_t i = 0; i < numDisplays; i++) {
+        hwc_display_contents_1_t *list = displays[i];
         //XXX: Actually handle the multiple displays
-        if (LIKELY(list)) {
+        if (LIKELY(list && list->numHwLayers)) {
+            ctx->dpys[i] = list->dpy;
             //reset for this draw round
             VideoOverlay::reset();
             ExtOnly::reset();
 
+            if(ctx->isPoweredDown)
+                ALOGW("SF called %s after a POWERDOWN", __FUNCTION__);
+
             getLayerStats(ctx, list);
             if(VideoOverlay::prepare(ctx, list)) {
                 ctx->overlayInUse = true;
