Index: trunk/modules/vci_mem_cache_v4/caba/source/include/mem_cache_directory_v4.h
===================================================================
--- trunk/modules/vci_mem_cache_v4/caba/source/include/mem_cache_directory_v4.h	(revision 200)
+++ trunk/modules/vci_mem_cache_v4/caba/source/include/mem_cache_directory_v4.h	(revision 212)
@@ -267,4 +267,31 @@
       }
     } // end read()
+
+    /////////////////////////////////////////////////////////////////////
+    // The read_neutral() function reads a directory entry, without
+    // changing the LRU
+    // Arguments :
+    // - address : the address of the entry 
+    // The function returns a copy of a (valid or invalid) entry  
+    /////////////////////////////////////////////////////////////////////
+    DirectoryEntry read_neutral(const addr_t &address)
+    {
+
+#define L2 soclib::common::uint32_log2
+      const size_t set = (size_t)(address >> (L2(m_words) + 2)) & (m_sets - 1);
+      const tag_t  tag = (tag_t)(address >> (L2(m_sets) + L2(m_words) + 2));
+#undef L2
+
+      bool hit       = false;
+      for ( size_t i=0 ; i<m_ways ; i++ ) {
+        bool equal = ( m_dir_tab[set][i].tag == tag );
+        bool valid = m_dir_tab[set][i].valid;
+        hit = equal && valid;
+        if ( hit ) {			
+          return DirectoryEntry(m_dir_tab[set][i]);
+        } 
+      }
+      return DirectoryEntry();
+    } // end read_neutral()
 
     /////////////////////////////////////////////////////////////////////
Index: trunk/modules/vci_mem_cache_v4/caba/source/src/vci_mem_cache_v4.cpp
===================================================================
--- trunk/modules/vci_mem_cache_v4/caba/source/src/vci_mem_cache_v4.cpp	(revision 200)
+++ trunk/modules/vci_mem_cache_v4/caba/source/src/vci_mem_cache_v4.cpp	(revision 212)
@@ -448,6 +448,5 @@
 /////////////////////////////////////////////////////
 {
-    size_t way = 0;
-    DirectoryEntry entry = m_cache_directory.read(addr, way);
+    DirectoryEntry entry = m_cache_directory.read_neutral(addr);
     if ( (entry.count != m_debug_previous_count) or 
          (entry.valid != m_debug_previous_hit) )
