diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c
index 15c7bda04561a4e5fa199ada878bad03d11fb6c4..0f806e2ea1e7bd38fed9619f9db1d9f1c0d40e69 100644
--- a/openair1/PHY/LTE_TRANSPORT/prach.c
+++ b/openair1/PHY/LTE_TRANSPORT/prach.c
@@ -1272,9 +1272,10 @@ void rx_prach(PHY_VARS_eNB *eNB,
     //send prachF to RCC
     return;
   }
-  else if (eNB->node_function == NGFI_RCC_IF4) {
+  // in case of RCC and prach received rx_thread wakes up prach
+  //else if (eNB->node_function == NGFI_RCC_IF4) {
     //wait for prachF from RRU and continue with PRACH processing
-  }
+  //}
 
 
 
diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index c0165bc2e6cd78df133e31a69824dec2122f15b3..785001e8f44e6526e30276ddb161adca885b59b6 100755
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -2498,7 +2498,7 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
   eNB_proc_t *proc = &eNB->proc;
   int subframe = proc->subframe_rx;
   int frame = proc->frame_rx;
-
+  int symbol_number, symbol_mask, symbol_mask_full, prach_rx;
 
   if (subframe==9) { 
     subframe=0;
@@ -2577,10 +2577,30 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
 
       }
       else if (eNB->node_function == NGFI_RCC_IF4) { // => acquisition from RRU (IF4)
-	// get frame/subframe information from IF4 interface
-
-	//recv_IF4(eNB,subframe<<1);
-	//recv_IF4(eNB,1+(subframe<<1));
+	      // get frame/subframe information from IF4 interface
+	      // timed loop (200 us)
+	
+        symbol_mask = 0;
+        symbol_mask_full = (1<<fp->symbols_per_tti)-1;
+        if (is_prach_subframe(fp,frame,subframe)>0)
+          prach_rx = 0;
+        else
+          prach_rx = 1;
+          
+        do {
+				  recv_IF4(eNB, proc, &packet_type, &symbol_number);
+				  if (is_prach_subframe(fp,frame,subframe)>0 && packet_type == PRACH) {
+					  // wake up prach_rx
+					  prach_rx = 1;
+					}
+					if (packet_type == PULFFT)
+					  symbol_mask = symbol_mask | (1<<symbol_number);
+					
+				} while( (symbol_mask != symbol_mask_full) || (prach_rx == 0));    
+					 
+
+	      //recv_IF4(eNB,subframe<<1);
+	      //recv_IF4(eNB,1+(subframe<<1));
 	
 	    // Tobi aka mr monaco: ETH