Index: branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
===================================================================
--- branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 251)
+++ 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 251)
+++ 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);
     }
