Index: branches/reconfiguration/modules/dspin_router/caba/source/src/dspin_router.cpp
===================================================================
--- branches/reconfiguration/modules/dspin_router/caba/source/src/dspin_router.cpp	(revision 1001)
+++ branches/reconfiguration/modules/dspin_router/caba/source/src/dspin_router.cpp	(revision 1006)
@@ -593,10 +593,11 @@
             // do not write into the FIFO of disabled interfaces
             fifo_in_write[i]       = p_in[i].write.read() &&
-                                     ((m_disable_mask & (1 << i)) == 0);
+                (((m_disable_mask >> i) & 1) == 0);
 
             fifo_in_wdata[i].data  = p_in[i].data.read();
             fifo_in_wdata[i].eop   = p_in[i].eop.read();
 
-            fifo_out_read[i]       = p_out[i].read.read();
+            fifo_out_read[i]       = p_out[i].read.read() ||
+                (((m_disable_mask >> i) & 1) == 1);
             fifo_out_write[i]      = false;
         }
@@ -882,6 +883,5 @@
             if( r_alloc_out[j] )  // output port allocated
             {
-                fifo_out_write[j] = put_in[r_index_out[j]] &&
-                                    ((m_disable_mask & (1 << j)) == 0);
+                fifo_out_write[j] = put_in[r_index_out[j]];
                 fifo_out_wdata[j] = data_in[r_index_out[j]];
             }
@@ -908,10 +908,12 @@
         {
             // input ports : READ signals
-            p_in[i].read = r_fifo_in[i].wok();
+            p_in[i].read = r_fifo_in[i].wok() ||
+                (((m_disable_mask >> i) & 1) == 1);
 
             // output ports : DATA & WRITE signals
             p_out[i].data  = r_fifo_out[i].read().data;
             p_out[i].eop   = r_fifo_out[i].read().eop;
-            p_out[i].write = r_fifo_out[i].rok();
+            p_out[i].write = r_fifo_out[i].rok() &&
+                (((m_disable_mask >> i) & 1) == 0);
         }
     } // end genMoore
