Index: trunk/modules/vci_block_device_tsar/caba/source/src/vci_block_device_tsar.cpp
===================================================================
--- trunk/modules/vci_block_device_tsar/caba/source/src/vci_block_device_tsar.cpp	(revision 982)
+++ trunk/modules/vci_block_device_tsar/caba/source/src/vci_block_device_tsar.cpp	(revision 983)
@@ -115,5 +115,6 @@
 std::cout << "  <BDEV_TGT WRITE_BUFFER> value = " << r_tdata.read() << std::endl;
 #endif
-            r_buf_address = (uint64_t)r_tdata.read();
+            r_buf_address = (r_buf_address.read() & 0xFFFFFFFF00000000ULL) |
+                ((uint64_t)r_tdata.read());
             r_target_fsm  = T_IDLE;
         }
@@ -128,5 +129,6 @@
 std::cout << "  <BDEV_TGT WRITE_BUFFER_EXT> value = " << r_tdata.read() << std::endl;
 #endif
-            r_buf_address = r_buf_address.read() + (((uint64_t)r_tdata.read())<<32);
+            r_buf_address = (r_buf_address.read() & 0x00000000FFFFFFFFULL) |
+                ((uint64_t)r_tdata.read() << 32);
             r_target_fsm  = T_IDLE;
         }
