diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
index 4a75e9cbc8857efce1921ec15609e2b7a2878e9e..aa7e8fe28346f84ec202e73129f3a9181098f7d6 100644
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+++ b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
@@ -776,7 +776,7 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
 
   switch (dlsch0_harq->Qm) {
   case 2 :
-    if ((rx_type==rx_standard) || (codeword_TB0 = 1)) {
+    if ((rx_type==rx_standard) || (codeword_TB0 == -1) || (codeword_TB1 == -1)) {
         dlsch_qpsk_llr(frame_parms,
                        lte_ue_pdsch_vars[eNB_id]->rxdataF_comp0,
                        lte_ue_pdsch_vars[eNB_id]->llr[0],
@@ -852,7 +852,7 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
       }
     break;
   case 4 :
-    if ((rx_type==rx_standard ) || (codeword_TB0 = 1) ) {
+    if ((rx_type==rx_standard ) || (codeword_TB0 == -1) || (codeword_TB1 == -1)) {
       dlsch_16qam_llr(frame_parms,
                       lte_ue_pdsch_vars[eNB_id]->rxdataF_comp0,
                       lte_ue_pdsch_vars[eNB_id]->llr[0],
@@ -861,7 +861,7 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
                       adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,4,subframe,symbol),
                       lte_ue_pdsch_vars[eNB_id]->llr128);
     }
-    else if ((rx_type >= rx_IC_single_stream) && (codeword_TB0 != -1))  {
+    else if (rx_type >= rx_IC_single_stream) {
       if (dlsch1_harq->Qm == 2) {
         dlsch_16qam_qpsk_llr(frame_parms,
                              lte_ue_pdsch_vars[eNB_id]->rxdataF_comp0,
@@ -935,7 +935,7 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
     }
     break;
   case 6 :
-    if ((rx_type==rx_standard) || (codeword_TB0 == -1))  {
+    if ((rx_type==rx_standard) || (codeword_TB0 == -1) || (codeword_TB1 == -1))  {
       dlsch_64qam_llr(frame_parms,
                       lte_ue_pdsch_vars[eNB_id]->rxdataF_comp0,
                       lte_ue_pdsch_vars[eNB_id]->llr[0],
@@ -945,7 +945,7 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
                       adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,6,subframe,symbol),
                       lte_ue_pdsch_vars[eNB_id]->llr128);
     }
-    else if ((rx_type >= rx_IC_single_stream) && (codeword_TB0 != -1)){
+    else if (rx_type >= rx_IC_single_stream) {
       if (dlsch1_harq->Qm == 2) {
         dlsch_64qam_qpsk_llr(frame_parms,
                              lte_ue_pdsch_vars[eNB_id]->rxdataF_comp0,
diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c
index c07169a5c150cecd636ff77546e1d7580160a22d..4639a0cfe231f7c457cd5523f5ee44f7fd9fb88b 100755
--- a/openair1/SIMULATION/LTE_PHY/dlsim.c
+++ b/openair1/SIMULATION/LTE_PHY/dlsim.c
@@ -3619,11 +3619,6 @@ int main(int argc, char **argv)
 
           for (TB=0; TB<Kmimo; TB++){ // may be we ll have to swap CW
 
-           /* if (PHY_vars_UE->dlsch_ue[0][TB] == NULL){
-              printf("[DLSIM] PHY_vars_UE->dlsch_ue[0][TB] == NULL\n");
-              printf("HERE HERE HERE HERE\n");
-              continue;
-            }*/
 
               if (TB0_active == 0){
 #ifdef DEBUG_HARQ
@@ -4164,6 +4159,7 @@ int main(int argc, char **argv)
 #endif
               }
             }
+            if (rx_type==rx_SIC_dual_stream)
             TB++; // to terminate the loop over TB
           }