Index: /branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.cpp
===================================================================
--- /branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.cpp	(revision 257)
+++ /branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.cpp	(revision 258)
@@ -1090,5 +1090,4 @@
   m_activeNumILRRefIdx         = pSrc->m_activeNumILRRefIdx;
   m_interLayerPredEnabledFlag  = pSrc->m_interLayerPredEnabledFlag;
-  m_numInterLayerRefPics       = pSrc->m_numInterLayerRefPics;
   memcpy( m_interLayerPredLayerIdc, pSrc->m_interLayerPredLayerIdc, sizeof( m_interLayerPredLayerIdc ) );
 #elif REF_IDX_FRAMEWORK
Index: /branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.h
===================================================================
--- /branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.h	(revision 257)
+++ /branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.h	(revision 258)
@@ -1532,5 +1532,4 @@
 #if JCTVC_M0458_INTERLAYER_RPS_SIG
   Bool       m_interLayerPredEnabledFlag;
-  Int        m_numInterLayerRefPics;
 #endif 
 public:
@@ -1808,6 +1807,4 @@
   Bool      getInterLayerPredEnabledFlag     ()                { return m_interLayerPredEnabledFlag;}
 
-  Void      setNumInterLayerRefPics          ( UInt   val )    { m_numInterLayerRefPics = val; }
-  UInt      getNumInterLayerRefPics          ()                { return m_numInterLayerRefPics;}  
 #else
   Void      setNumILRRefIdx     ( Int i )               { m_numILRRefIdx = i;     }
Index: /branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
===================================================================
--- /branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 257)
+++ /branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 258)
@@ -1067,5 +1067,5 @@
           if( !pcSlice->getVPS()->getMaxOneActiveRefLayerFlag()) 
           {
-            WRITE_CODE(pcSlice->getNumInterLayerRefPics(), numBits,"num_inter_layer_ref_pics_minus1");
+            WRITE_CODE(pcSlice->getActiveNumILRRefIdx() - 1, numBits,"num_inter_layer_ref_pics_minus1");           
           }       
           for(Int i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ )
Index: /branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncSlice.cpp
===================================================================
--- /branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 257)
+++ /branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 258)
@@ -491,9 +491,11 @@
   {
 #if JCTVC_M0458_INTERLAYER_RPS_SIG
-  // currently only one reference layer is supported in software and no decision logic to select yet.
-  // hence num of active inter layer references is set to one always
     if( rpcSlice->getNumILRRefIdx() > 0 )
     {
-      rpcSlice->setActiveNumILRRefIdx(1);
+      rpcSlice->setActiveNumILRRefIdx( rpcSlice->getNumILRRefIdx() );
+      for( Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
+      {
+        rpcSlice->setInterLayerPredLayerIdc(i, i);
+      }
       rpcSlice->setInterLayerPredEnabledFlag(1);
     }
