diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp
index 56345cd5c2744cd5e8b4ade973647a6a9e464d46..47cd4c5fcad48bc7b069e715c098dd3040171e18 100644
--- a/source/Lib/EncoderLib/EncGOP.cpp
+++ b/source/Lib/EncoderLib/EncGOP.cpp
@@ -1946,7 +1946,7 @@ void EncGOP::xPicInitHashME( Picture *pic, const PPS *pps, PicList &rcListPic )
   {
     Picture* refPic = *(iterPic++);
 
-    if (refPic->poc != pic->poc && refPic->referenced)
+    if (refPic->reconstructed && refPic->referenced && refPic->poc != pic->poc && refPic->layerId == pic->layerId)
     {
       bool validPOC = ((refPic->getPOC() == m_modeCtrl->getUseHashMEPOCToCheck()) && !m_modeCtrl->getUseHashMEPOCChecked());
       if (!refPic->getHashMap()->isInitial() || validPOC)