Index: /trunk/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h
===================================================================
--- /trunk/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h	(revision 504)
+++ /trunk/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h	(revision 505)
@@ -716,5 +716,4 @@
       // Buffer between WRITE fsm and IXR_CMD fsm 
       sc_signal<bool>     r_write_to_ixr_cmd_req;     // valid request
-      sc_signal<bool>     r_write_to_ixr_cmd_put;     // request type (GET/PUT)
       sc_signal<size_t>   r_write_to_ixr_cmd_index;   // TRT index 
 
@@ -820,5 +819,4 @@
       // Buffer between CAS fsm and IXR_CMD fsm 
       sc_signal<bool>     r_cas_to_ixr_cmd_req;   // valid request
-      sc_signal<bool>     r_cas_to_ixr_cmd_put;   // request type (GET/PUT)
       sc_signal<size_t>   r_cas_to_ixr_cmd_index; // TRT index 
 
Index: /trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp
===================================================================
--- /trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp	(revision 504)
+++ /trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp	(revision 505)
@@ -3310,5 +3310,4 @@
                     {
                         r_write_to_ixr_cmd_req   = true;
-                        r_write_to_ixr_cmd_put   = false;
                         r_write_to_ixr_cmd_index = r_write_trt_index.read();
                         r_write_fsm              = WRITE_RSP;
@@ -3511,5 +3510,4 @@
                     {
                         r_write_to_ixr_cmd_req     = true;
-                        r_write_to_ixr_cmd_put     = true;
                         r_write_to_ixr_cmd_index   = r_write_trt_index.read();
                         r_write_fsm = WRITE_IDLE;
@@ -3612,5 +3610,4 @@
                         r_ixr_cmd_word    = 0;
                         r_ixr_cmd_fsm     = IXR_CMD_READ_SEND;
-                        for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
 
 #if DEBUG_MEMC_IXR_CMD
@@ -3634,5 +3631,10 @@
                         r_ixr_cmd_word    = 0;
                         r_ixr_cmd_fsm     = IXR_CMD_WRITE_SEND;
-                        for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
+
+                        // Read data from TRT if PUT transaction
+                        if (not entry.xram_read)
+                        {
+                            for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
+                        }
 
 #if DEBUG_MEMC_IXR_CMD
@@ -3656,5 +3658,10 @@
                         r_ixr_cmd_word    = 0;
                         r_ixr_cmd_fsm     = IXR_CMD_CAS_SEND;
-                        for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
+
+                        // Read data from TRT if PUT transaction
+                        if (not entry.xram_read)
+                        {
+                            for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
+                        }
 
 #if DEBUG_MEMC_IXR_CMD
@@ -3733,5 +3740,5 @@
                     if (p_vci_ixr.cmdack)
                     {
-                        if (r_write_to_ixr_cmd_put.read())   // PUT
+                        if (not r_ixr_cmd_get.read())   // PUT
                         {
                             if (r_ixr_cmd_word.read() == (m_words - 2))
@@ -3770,5 +3777,5 @@
                     if (p_vci_ixr.cmdack)
                     {
-                        if (r_cas_to_ixr_cmd_put.read()) // PUT
+                        if (not r_ixr_cmd_get.read()) // PUT
                         {
                             if (r_ixr_cmd_word.read() == (m_words - 2))
@@ -5665,5 +5672,4 @@
                     {
                         r_cas_to_ixr_cmd_req     = true;
-                        r_cas_to_ixr_cmd_put     = true;
                         r_cas_to_ixr_cmd_index   = r_cas_trt_index.read();
                         r_cas_fsm                = CAS_IDLE;
@@ -5802,5 +5808,4 @@
                     {
                         r_cas_to_ixr_cmd_req        = true;
-                        r_cas_to_ixr_cmd_put        = false;
                         r_cas_to_ixr_cmd_index      = r_cas_trt_index.read();
                         r_cas_fsm                   = CAS_WAIT;
