diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c
index e4dbdfe17a9a95e8a107ad641e46c7f51e7a98de..4e169028bcc05064043af3ebf909b894a0f1c558 100644
--- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c
+++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c
@@ -5202,7 +5202,6 @@ void prepare_dl_decoding_format1_1A(DCI_format_t dci_format,
     if ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti))
     {
         pdlsch0_harq->round    = 0;
-        pdlsch0_harq->first_tx = 1;
         pdlsch0_harq->status   = ACTIVE;
     }
     else //CRNTI
@@ -5222,30 +5221,29 @@ void prepare_dl_decoding_format1_1A(DCI_format_t dci_format,
             pdlsch0_harq->status   = ACTIVE;
 
         }
-	/*
+	
 	else if (rv1  != 0 )  
 	//NDI has not been toggled but rv was increased by eNB: retransmission
 	  {
-	    if (pdlsch0_harq->round == 0)  
+	    if (pdlsch0_harq->status == SCH_IDLE)  
 	    //packet was actually decoded in previous transmission (ACK was missed by eNB)
 	    //However, the round is not a good check as it might have been decoded in a retransmission prior to this one.
 	      {
 		LOG_D(PHY,"skip pdsch decoding and report ack\n");
 		// skip pdsch decoding and report ack
-		pdlsch0_harq->status   = SCH_IDLE;
+		//pdlsch0_harq->status   = SCH_IDLE;
 		pdlsch0->active       = 0;
 		pdlsch0->harq_ack[subframe].ack = 1;
 		pdlsch0->harq_ack[subframe].harq_id = harq_pid;
 		pdlsch0->harq_ack[subframe].send_harq_status = 1;
 
-		pdlsch0_harq->first_tx = 0;
+		//pdlsch0_harq->first_tx = 0;
 	      }
 	    else  //normal retransmission
 	      { 
-		// nothing to do
+		// nothing special to do
 	      }
 	  }
-	*/
     }
 
     pdlsch0_harq->DCINdi = ndi1;
@@ -5829,15 +5827,13 @@ void prepare_dl_decoding_format2_2A(DCI_format_t dci_format,
 	else if (rv1  != 0 ) 
 	  //NDI has not been toggled but rv was increased by eNB: retransmission
 	  {
-	    if(dlsch0_harq->round == 0) {
-#if 0
+	    if(dlsch0_harq->status == SCH_IDLE) {
 	      // skip pdsch decoding and report ack
-	      dlsch0_harq->status   = SCH_IDLE;
+	      //dlsch0_harq->status   = SCH_IDLE;
 	      pdlsch0->active       = 0;
 	      pdlsch0->harq_ack[subframe].ack = 1;
 	      pdlsch0->harq_ack[subframe].harq_id = harq_pid;
 	      pdlsch0->harq_ack[subframe].send_harq_status = 1;
-#endif
 	    }
 	  }
       
@@ -5876,16 +5872,14 @@ void prepare_dl_decoding_format2_2A(DCI_format_t dci_format,
 	else if (rv1  != 0 )  
 	//NDI has not been toggled but rv was increased by eNB: retransmission
 	  {
-#if 0
-	    if(dlsch1_harq->round == 0) {
+	    if(dlsch1_harq->status == SCH_IDLE) {
 	      // skip pdsch decoding and report ack
-	      dlsch1_harq->status   = SCH_IDLE;
+	      //dlsch1_harq->status   = SCH_IDLE;
 	      pdlsch1->active       = 0;
 	      pdlsch1->harq_ack[subframe].ack = 1;
 	      pdlsch1->harq_ack[subframe].harq_id = harq_pid;
 	      pdlsch1->harq_ack[subframe].send_harq_status = 1;
 	    }
-#endif
 	  }
 	
         // if Imcs in [29..31] TBS is assumed to be as determined from DCI transported in the latest