Index: /branches/v5/modules/vci_cc_vcache_wrapper_dspin_coherence/caba/source/src/vci_cc_vcache_wrapper.cpp
===================================================================
--- /branches/v5/modules/vci_cc_vcache_wrapper_dspin_coherence/caba/source/src/vci_cc_vcache_wrapper.cpp	(revision 320)
+++ /branches/v5/modules/vci_cc_vcache_wrapper_dspin_coherence/caba/source/src/vci_cc_vcache_wrapper.cpp	(revision 321)
@@ -1719,5 +1719,5 @@
                                 // The return state is defined in r_icache_fsm_save.
     {
-        paddr_t  paddr = r_cc_receive_icache_nline.read(); // Warning : not valid in case of CLACK
+        paddr_t  paddr = r_cc_receive_icache_nline.read() * m_icache_words * 4;
         paddr_t  mask  = ~((m_icache_words<<2)-1);
 
@@ -4341,5 +4341,5 @@
                             // The return state is defined in r_dcache_fsm_cc_save
     {
-        paddr_t  paddr = r_cc_receive_dcache_nline.read();
+        paddr_t  paddr = r_cc_receive_dcache_nline.read() * m_dcache_words * 4;
         paddr_t  mask = ~((m_dcache_words<<2)-1);
 
@@ -4569,4 +4569,5 @@
                         r_dcache_fsm_scan_save   = r_dcache_fsm.read();
                         r_dcache_fsm             = DCACHE_INVAL_TLB_SCAN;
+                        break;
                     }
                     else
@@ -5326,5 +5327,5 @@
 
     ///////////////////////////////////////////////////////////////////////////////
-    //   CC_RECEIVE  FSM
+    //   C_RECEIVE  FSM
     // This FSM receive all coherence packets on a DSPIN40 port.
     // There is 4 packet types:
@@ -5358,10 +5359,10 @@
                     r_cc_receive_fsm = CC_RECEIVE_CLACK;
                 // test for a multi updt
-                else if(receive_type == DspinDhccpParam::TYPE_MULTI_UPDT)
+                else if((receive_type == DspinDhccpParam::TYPE_MULTI_UPDT_DATA) or
+                        (receive_type == DspinDhccpParam::TYPE_MULTI_UPDT_INST))
                     r_cc_receive_fsm = CC_RECEIVE_UPDT_HEADER;
                 // test for a multi inval
                 else
                     r_cc_receive_fsm = CC_RECEIVE_INVAL_HEADER;
-                
             }
             break;
@@ -5519,5 +5520,5 @@
             {
                 r_cc_receive_dcache_nline  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
-                r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
+                r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_WORD_INDEX);
                 r_cc_receive_dcache_type = CC_TYPE_UPDT;
                 // get back to idle state
@@ -5530,5 +5531,5 @@
             {
                 r_cc_receive_icache_nline  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
-                r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
+                r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_WORD_INDEX);
                 r_cc_receive_icache_type = CC_TYPE_UPDT;
                 // get back to idle state
