diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index 6fa7ce8ad8ef40faea15699afee9a091fb0f0690..1b3a85e5eecc21774b3f56907a7b21f1b6533869 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -1048,7 +1048,12 @@ schedule_ue_spec(module_id_t module_idP,
 		header_len_dtch = 0;
 		header_len_dtch_last = 0;	// the header length of the last mac sdu
 		// lcid has to be sorted before the actual allocation (similar struct as ue_list).
+#if defined(UE_EXPANSION) || defined(UE_EXPANSION_SIM2)
+		lcid = DTCH;
+		{
+#else
 		for (lcid = NB_RB_MAX - 1; lcid >= DTCH; lcid--) {
+#endif
 		    // TBD: check if the lcid is active
 
 		    header_len_dtch += 3;
diff --git a/openair2/LAYER2/MAC/pre_processor.c b/openair2/LAYER2/MAC/pre_processor.c
index 3650601144f93d897e3a82a20d81423d6120f703..a68be45f4ba2acfb02abe90ed5fade9a68637d00 100644
--- a/openair2/LAYER2/MAC/pre_processor.c
+++ b/openair2/LAYER2/MAC/pre_processor.c
@@ -119,7 +119,11 @@ store_dlsch_buffer(module_id_t Mod_id, frame_t frameP,
 
 	rnti = UE_RNTI(Mod_id, UE_id);
 
-	for (i = 0; i < MAX_NUM_LCID; i++) {	// loop over all the logical channels
+#if defined(UE_EXPANSION) || defined(UE_EXPANSION_SIM2)
+	for (i = DCCH; i <=DTCH; i++) {	// loop over DCCH, DCCH1 and DTCH
+#else
+    for (i = 0; i < MAX_NUM_LCID; i++) {    // loop over all the logical channels
+#endif
 
 	    rlc_status =
 		mac_rlc_status_ind(Mod_id, rnti, Mod_id, frameP, subframeP,