Index: trunk/modules/vci_cc_vcache_wrapper_v4/caba/source/src/vci_cc_vcache_wrapper_v4.cpp
===================================================================
--- trunk/modules/vci_cc_vcache_wrapper_v4/caba/source/src/vci_cc_vcache_wrapper_v4.cpp	(revision 238)
+++ trunk/modules/vci_cc_vcache_wrapper_v4/caba/source/src/vci_cc_vcache_wrapper_v4.cpp	(revision 239)
@@ -2155,5 +2155,5 @@
             r_dcache_fsm_scan_save = r_dcache_fsm.read();
             r_dcache_fsm           = DCACHE_INVAL_TLB_SCAN;
-            r_dcache_p0_valid      = false;
+            r_dcache_p0_valid      = r_dcache_p0_valid.read() and write_pipe_frozen;
         }
         // external coherence request 
@@ -2162,5 +2162,5 @@
             r_dcache_fsm_cc_save = r_dcache_fsm.read();
             r_dcache_fsm         = DCACHE_CC_CHECK;
-            r_dcache_p0_valid    = false;
+            r_dcache_p0_valid    = r_dcache_p0_valid.read() and write_pipe_frozen;
         }        
 
@@ -2714,9 +2714,9 @@
             r_dcache_tlb_vaddr  = r_icache_vaddr_save.read();
             r_dcache_fsm        = DCACHE_TLB_MISS;
-            r_dcache_p0_valid = false;
+            r_dcache_p0_valid   = r_dcache_p0_valid.read() and write_pipe_frozen;
         }
         else
         {
-            r_dcache_p0_valid = false;
+            r_dcache_p0_valid = r_dcache_p0_valid.read() and write_pipe_frozen;
         } // end P0 pipe stage
         break;
