diff --git a/libhwcomposer/hwc.cpp b/libhwcomposer/hwc.cpp
index 9dcb439..bf997ee 100644
--- a/libhwcomposer/hwc.cpp
+++ b/libhwcomposer/hwc.cpp
@@ -235,7 +235,6 @@
 
     ctx->mOverlay->configDone();
     ctx->mRotMgr->configDone();
-    MDPComp::resetIdleFallBack();
 
     return ret;
 }
@@ -501,6 +500,7 @@
     // This is only indicative of how many times SurfaceFlinger posts
     // frames to the display.
     CALC_FPS();
+    MDPComp::resetIdleFallBack();
     return ret;
 }
 
diff --git a/libhwcomposer/hwc_mdpcomp.cpp b/libhwcomposer/hwc_mdpcomp.cpp
index b88674f..22d9042 100644
--- a/libhwcomposer/hwc_mdpcomp.cpp
+++ b/libhwcomposer/hwc_mdpcomp.cpp
@@ -366,11 +366,7 @@
         ctx->isPaddingRound = false;
         ALOGD_IF(isDebug(), "%s: padding round",__FUNCTION__);
         ret = false;
-    } else if(sIdleFallBack) {
-        ALOGD_IF(isDebug(), "%s: idle fallback",__FUNCTION__);
-        ret = false;
     }
-
     return ret;
 }
 
@@ -381,6 +377,11 @@
 
     const int numAppLayers = ctx->listStats[mDpy].numAppLayers;
 
+    if(sIdleFallBack) {
+        ALOGD_IF(isDebug(), "%s: Idle fallback dpy %d",__FUNCTION__, mDpy);
+        return false;
+    }
+
     if(mDpy > HWC_DISPLAY_PRIMARY){
         ALOGD_IF(isDebug(), "%s: Cannot support External display(s)",
                  __FUNCTION__);
@@ -856,7 +857,7 @@
     }
 
     /* reset Invalidator */
-    if(idleInvalidator && mCurrentFrame.mdpCount)
+    if(idleInvalidator && !sIdleFallBack && mCurrentFrame.mdpCount)
         idleInvalidator->markForSleep();
 
     overlay::Overlay& ov = *ctx->mOverlay;
@@ -1024,7 +1025,7 @@
     }
 
     /* reset Invalidator */
-    if(idleInvalidator && mCurrentFrame.mdpCount)
+    if(idleInvalidator && !sIdleFallBack && mCurrentFrame.mdpCount)
         idleInvalidator->markForSleep();
 
     overlay::Overlay& ov = *ctx->mOverlay;
