Index: branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
===================================================================
--- branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.cpp	(revision 248)
+++ branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.cpp	(revision 250)
@@ -249,5 +249,5 @@
     {
 #if VPS_EXTN_DIRECT_REF_LAYERS
-      TDecTop *pcTDecTopBase = (TDecTop *)getRefLayerDec( m_layerId );
+      TDecTop *pcTDecTopBase = (TDecTop *)getRefLayerDec( m_layerId - 1 );
 #else
       TDecTop *pcTDecTopBase = (TDecTop *)getLayerDec( m_layerId-1 );
@@ -832,5 +832,5 @@
       {
 #if VPS_EXTN_DIRECT_REF_LAYERS
-        TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( m_layerId );
+        TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( m_layerId - 1 );
 #else
         TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 );
@@ -1281,5 +1281,5 @@
 
 #if VPS_EXTN_DIRECT_REF_LAYERS
-TDecTop* TDecTop::getRefLayerDec( UInt layerId )
+TDecTop* TDecTop::getRefLayerDec( UInt refLayerIdc )
 {
   TComVPS* vps = m_parameterSetManagerDecoder[0].getActiveVPS();
@@ -1299,5 +1299,5 @@
 #endif 
   
-  return (TDecTop *)getLayerDec( vps->getRefLayerId( m_layerId, 0 ) );
+  return (TDecTop *)getLayerDec( vps->getRefLayerId( m_layerId, refLayerIdc ) );
 }
 #endif
Index: branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.h
===================================================================
--- branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.h	(revision 248)
+++ branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.h	(revision 250)
@@ -157,5 +157,5 @@
   TDecTop*  getLayerDec(UInt layer)     { return m_ppcTDecTop[layer]; }
 #if VPS_EXTN_DIRECT_REF_LAYERS
-  TDecTop*  getRefLayerDec(UInt layerId);
+  TDecTop*  getRefLayerDec(UInt refLayerIdc);
 #endif
 #if AVC_BASE
