diff --git a/modules/wr_endpoint/ep_tx_framer.vhd b/modules/wr_endpoint/ep_tx_framer.vhd
index 31b462505013de853bb493a9871b515bd4384b36..f9160af1ff66ddcab6e79af09de121a98ed424b2 100644
--- a/modules/wr_endpoint/ep_tx_framer.vhd
+++ b/modules/wr_endpoint/ep_tx_framer.vhd
@@ -101,7 +101,7 @@ end ep_tx_framer;
 
 architecture behavioral of ep_tx_framer is
 
-  constant c_IFG_LENGTH : integer := 8;
+  constant c_IFG_LENGTH : integer := 1;
 
   type t_tx_framer_state is (TXF_IDLE, TXF_ADDR, TXF_PAUSE, TXF_QHEADER, TXF_DATA, TXF_OOB, TXF_WAIT_CRC, TXF_EMBED_CRC1, TXF_EMBED_CRC2, TXF_EMBED_CRC3, TXF_GAP, TXF_PAD, TXF_ABORT);
 
@@ -269,7 +269,7 @@ begin  -- behavioral
     p_oob_fsm : process(clk_sys_i)
     begin
       if rising_edge(clk_sys_i) then
-        if (rst_n_i = '0' or snk_i.cyc = '0') then
+        if (rst_n_i = '0') then
           oob_state    <= OOB_IDLE;
           oob.valid    <= '0';
           oob.oob_type <= (others => '0');
@@ -279,6 +279,7 @@ begin  -- behavioral
             when OOB_IDLE =>
               if sof_p1 = '1' then
                 oob_state <= OOB_1;
+                OOB.valid <= '0';
               end if;
             when OOB_1 =>
               if(snk_valid = '1' and snk_i.adr = c_WRF_OOB) then
@@ -640,14 +641,14 @@ begin  -- behavioral
               snk_out.rty <= '0';
               q_bytesel   <= '0';
 
-              if(counter = c_IFG_LENGTH) then
+              if(oob.valid = '1') then
                 if(pcs_busy_i = '0') then
                   state <= TXF_IDLE;
                 end if;
-              else
-                counter <= counter + 1;
-              end if;
-
+                else
+                  state <= TXF_IDLE;
+                end if;
+                  
 -------------------------------------------------------------------------------
 -- TX FSM state ABORT: signalize underlying PCS block to abort the frame
 -- immediately, corrupting its contents