diff --git a/libhwcomposer/hwc_mdpcomp.cpp b/libhwcomposer/hwc_mdpcomp.cpp
index 43a7a1a..d21533c 100644
--- a/libhwcomposer/hwc_mdpcomp.cpp
+++ b/libhwcomposer/hwc_mdpcomp.cpp
@@ -470,8 +470,10 @@
     }
 
     //XXX: Investigate doing this with pixel phase on MDSS
-    if(!isSecureBuffer(hnd) && isNonIntegralSourceCrop(layer->sourceCropf))
+    if((!isSecureBuffer(hnd) || !isProtectedBuffer(hnd)) &&
+            isNonIntegralSourceCrop(layer->sourceCropf)) {
         return false;
+    }
 
     hwc_rect_t crop = integerizeSourceCrop(layer->sourceCropf);
     hwc_rect_t dst = layer->displayFrame;
@@ -1833,7 +1835,8 @@
         } else {
             if(frame.isFBComposed[nYuvIndex]) {
                 private_handle_t *hnd = (private_handle_t *)layer->handle;
-                if(!secureOnly || isSecureBuffer(hnd)) {
+                if(!secureOnly || isSecureBuffer(hnd) ||
+                        isProtectedBuffer(hnd)) {
                     frame.isFBComposed[nYuvIndex] = false;
                     frame.fbCount--;
                 }
diff --git a/libhwcomposer/hwc_utils.cpp b/libhwcomposer/hwc_utils.cpp
index 03c6341..4fec80c 100644
--- a/libhwcomposer/hwc_utils.cpp
+++ b/libhwcomposer/hwc_utils.cpp
@@ -1196,7 +1196,8 @@
         ctx->listStats[dpy].yuvIndices[i] = -1;
         ctx->listStats[dpy].yuv4k2kIndices[i] = -1;
 
-        if (isSecureBuffer(hnd)) {
+        if (isSecureBuffer(hnd) || isProtectedBuffer(hnd)) {
+            // Protected Buffer must be treated as Secure Layer
             ctx->listStats[dpy].isSecurePresent = true;
             if(not isYuvBuffer(hnd)) {
                 // cache secureRGB layer parameters like we cache for YUV layers
diff --git a/libhwcomposer/hwc_utils.h b/libhwcomposer/hwc_utils.h
index 4849baf..35bdbee 100644
--- a/libhwcomposer/hwc_utils.h
+++ b/libhwcomposer/hwc_utils.h
@@ -537,12 +537,12 @@
             (hnd->width > maxPipeWidth));
 }
 
-// Returns true if the buffer is secure
+// Returns true if the buffer is secure(using secure heap)
 static inline bool isSecureBuffer(const private_handle_t* hnd) {
     return (hnd && (private_handle_t::PRIV_FLAGS_SECURE_BUFFER & hnd->flags));
 }
 
-// Returns true if the buffer is protected
+// Returns true if the buffer is protected(L3 using IOMMU heap)
 static inline bool isProtectedBuffer(const private_handle_t* hnd) {
     return (hnd && (private_handle_t::PRIV_FLAGS_PROTECTED_BUFFER & hnd->flags));
 }
