Index: trunk/modules/dspin_router_tsar/caba/source/include/dspin_router_tsar.h
===================================================================
--- trunk/modules/dspin_router_tsar/caba/source/include/dspin_router_tsar.h	(revision 576)
+++ trunk/modules/dspin_router_tsar/caba/source/include/dspin_router_tsar.h	(revision 578)
@@ -28,5 +28,5 @@
 
 ////////////////////////////////////////////////////////////////////////////////
-// This component implements a variant of the standard (SocLib)  DSPIN router:
+// This component implements a variant of the standard (SocLib) DSPIN router:
 // The routing function has been modified to handle the special case of
 // cluster_iob0 (containing component IOB0) and cluster_iob1 (containing
@@ -95,8 +95,8 @@
                 const size_t   in_fifo_depth,  // input fifo depth
                 const size_t   out_fifo_depth, // output fifo depth
-                const size_t   cluster_iob0,   // cluster containing IOB0
-                const size_t   cluster_iob1,   // cluster containing IOB0
-                const size_t   l_width,        // local field width in first flit
-                const size_t   iob_local_id ); // IOB local index
+                const bool     is_iob0,        // cluster containing IOB0
+                const bool     is_iob1,        // cluster containing IOB0
+                const bool     is_rsp,         // only response router is modified
+                const size_t   l_width);       // local srcid width
     private:
 
@@ -132,5 +132,5 @@
     bool                        m_is_iob0;
     bool                        m_is_iob1;
-    size_t                      m_iob_local_id;
+    bool                        m_is_rsp;
 
     // methods 
Index: trunk/modules/dspin_router_tsar/caba/source/src/dspin_router_tsar.cpp
===================================================================
--- trunk/modules/dspin_router_tsar/caba/source/src/dspin_router_tsar.cpp	(revision 576)
+++ trunk/modules/dspin_router_tsar/caba/source/src/dspin_router_tsar.cpp	(revision 578)
@@ -35,5 +35,5 @@
 // between the IOB and MEMC initiators.
 // This component contains the following modifications:
-// - 4 extra constructor arguments,
+// - 4 new constructor arguments
 // - 6 new member variables
 // - a modified routing function
@@ -60,8 +60,9 @@
                 const size_t   in_fifo_depth,  // input fifo depth
                 const size_t   out_fifo_depth, // output fifo depth
-                const size_t   cluster_iob0,   // cluster containing IOB0
-                const size_t   cluster_iob1,   // cluster containing IOB0
-                const size_t   l_width,        // local field width in first flit
-                const size_t   iob_local_id )  // IOB local index
+
+                const bool     is_iob0,        // cluster contains iob0
+                const bool     is_iob1,        // cluster contains iob1
+                const bool     is_rsp,         // only response router is modified
+                const size_t   l_width)        // local field srcid width 
 	: soclib::caba::BaseModule(name),
 
@@ -91,7 +92,7 @@
       m_l_mask( (0x1 << l_width) - 1 ),
 
-      m_is_iob0( cluster_iob0 == ((x<<y_width) + y) ),
-      m_is_iob1( cluster_iob1 == ((x<<y_width) + y) ),
-      m_iob_local_id( iob_local_id )
+      m_is_iob0( is_iob0 ),
+      m_is_iob1( is_iob1 ),
+      m_is_rsp( is_rsp )
 
     {
@@ -138,7 +139,7 @@
         else    // handling IOB0 & IOB1 special cases
         {
-            if      ((m_is_iob0) and (ldest > 0xA)) return DSPIN_WEST;
-            else if ((m_is_iob1) and (ldest > 0xA)) return DSPIN_EAST;
-            else                                    return DSPIN_LOCAL;
+            if      (m_is_rsp and m_is_iob0 and (ldest > 0xA)) return DSPIN_WEST;
+            else if (m_is_rsp and m_is_iob1 and (ldest > 0xA)) return DSPIN_EAST;
+            else                                               return DSPIN_LOCAL;
         }
     } // end route()
