diff --git a/openair1/SCHED/phy_procedures_lte_common.c b/openair1/SCHED/phy_procedures_lte_common.c
index bc2638f2b0b29d449a02d6424cb28b661f8d229e..2745feecef9bbcd5be146474169dc12e1305674a 100755
--- a/openair1/SCHED/phy_procedures_lte_common.c
+++ b/openair1/SCHED/phy_procedures_lte_common.c
@@ -62,7 +62,7 @@ void get_Msg3_alloc(LTE_DL_FRAME_PARMS *frame_parms,
 
     if (*subframe>9) {
       *subframe = *subframe-10;
-      *frame = current_frame+1;
+      *frame = (current_frame+1) & 1023;
     } else {
       *frame=current_frame;
     }
@@ -77,17 +77,17 @@ void get_Msg3_alloc(LTE_DL_FRAME_PARMS *frame_parms,
 
       case 4:
         *subframe = 2;
-        *frame = current_frame+1;
+        *frame = (current_frame+1) & 1023;
         break;
 
       case 5:
         *subframe = 2;
-        *frame = current_frame+1;
+        *frame = (current_frame+1) & 1023;
         break;
 
       case 9:
         *subframe = 7;
-        *frame = current_frame+1;
+        *frame = (current_frame+1) & 1023;
         break;
       }
     } else if (frame_parms->tdd_config == 3) {
@@ -97,22 +97,22 @@ void get_Msg3_alloc(LTE_DL_FRAME_PARMS *frame_parms,
       case 5:
       case 6:
         *subframe = 2;
-        *frame = current_frame+1;
+        *frame = (current_frame+1) & 1023;
         break;
 
       case 7:
         *subframe = 3;
-        *frame = current_frame+1;
+        *frame = (current_frame+1) & 1023;
         break;
 
       case 8:
         *subframe = 4;
-        *frame = current_frame+1;
+        *frame = (current_frame+1) & 1023;
         break;
 
       case 9:
         *subframe = 2;
-        *frame = current_frame+2;
+        *frame = (current_frame+2) & 1023;
         break;
       }
     }
@@ -127,11 +127,11 @@ void get_Msg3_alloc_ret(LTE_DL_FRAME_PARMS *frame_parms,
 {
   if (frame_parms->frame_type == FDD) {
     // always retransmit in n+8
-    *subframe = current_subframe+8;
+    *subframe = (current_subframe+8) % 10;
 
     if (*subframe>9) {
       *subframe = *subframe-10;
-      *frame = current_frame+1;
+      *frame = (current_frame+1) & 1023;
     } else {
       *frame=current_frame;
     }
@@ -141,12 +141,12 @@ void get_Msg3_alloc_ret(LTE_DL_FRAME_PARMS *frame_parms,
       // original PUSCH in 3, PHICH in 9, ret in 3
       // original PUSCH in 7, PHICH in 1 (S), ret in 7
       // original PUSCH in 8, PHICH in 4, ret in 8
-      *frame = current_frame+1;
+      *frame = (current_frame+1) & 1023;
     } else if (frame_parms->tdd_config == 3) {
       // original PUSCH in 2, PHICH in 8, ret in 2 next frame
       // original PUSCH in 3, PHICH in 9, ret in 3 next frame
       // original PUSCH in 4, PHICH in 0, ret in 4 next frame
-      *frame=current_frame+1;
+      *frame=(current_frame+1) & 1023;
     }
   }
 }
@@ -161,7 +161,7 @@ uint8_t get_Msg3_harq_pid(LTE_DL_FRAME_PARMS *frame_parms,
 
   if (frame_parms->frame_type ==FDD) {
     ul_subframe = (current_subframe>3) ? (current_subframe-4) : (current_subframe+6);
-    ul_frame    = (current_subframe>3) ? (frame+1) : frame;
+    ul_frame    = (current_subframe>3) ? ((frame+1)&1023) : frame;
   } else {
     switch (frame_parms->tdd_config) {
     case 1: