diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt
index 37db1cad279f2023c2004d640c26aa0dde23a903..e86cfa43a616bbf6e4bb7e2d933d2bde2423eb0a 100644
--- a/common/utils/T/T_messages.txt
+++ b/common/utils/T/T_messages.txt
@@ -7,6 +7,10 @@ ID = ENB_DL_TICK
     DESC = eNodeB downlink tick - one tick per ms at start of downlink processing
     GROUP = ALL:PHY:GRAPHIC:ENB
     FORMAT = int,eNB_ID : int,frame : int,subframe
+ID = ENB_DLSCH_UE_DCI
+    DESC = eNodeB downlink UE specific DCI as sent by the PHY layer
+    GROUP = ALL:PHY:GRAPHIC:ENB
+    FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,dci_format
 ID = ENB_INPUT_SIGNAL
     DESC = eNodeB received signal in the time domain for a duration of 1ms
     GROUP = ALL:PHY:GRAPHIC:HEAVY:ENB
diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c
index c3172a612f17883dce8fc31233edb7f0f118ddd7..8ebc1bdf12c5acf4babf356f35653b43bda12453 100644
--- a/common/utils/T/tracer/enb.c
+++ b/common/utils/T/tracer/enb.c
@@ -147,32 +147,27 @@ static void enb_main_gui(gui *g, event_handler *h, void *database)
   /* downlink UE DCIs */
   line = new_container(g, HORIZONTAL);
   widget_add_child(g, top_container, line, -1);
-  timeline_plot = new_timeline(g, 512, 4, 5);
+  timeline_plot = new_timeline(g, 512, 8, 5);
   widget_add_child(g, line, timeline_plot, -1);
   container_set_child_growable(g, line, timeline_plot, 1);
-  for (i = 0; i < 4; i++)
+  widget_add_child(g, line, new_label(g,"DL/UL TICK/DCI/ACK/NACK "), 0);
+  for (i = 0; i < 8; i++)
     timeline_set_subline_background_color(g, timeline_plot, i,
         new_color(g, i & 1 ? "#ddd" : "#eee"));
-  timelog = new_timelog(h, database, "ENB_DL_TICK");
   timeview = new_view_time(3600, 10, g, timeline_plot);
+  /* tick logging */
+  timelog = new_timelog(h, database, "ENB_DL_TICK");
   subview = new_subview_time(timeview, 0, FOREGROUND_COLOR);
   logger_add_view(timelog, subview);
-  widget_add_child(g, line, new_label(g,"DL TICK/DCI/ACK/NACK "), 0);
+  /* DCI logging */
+  timelog = new_timelog(h, database, "ENB_DLSCH_UE_DCI");
+  subview = new_subview_time(timeview, 1, new_color(g, "#228"));
+  logger_add_view(timelog, subview);
 
   /* uplink UE DCIs */
-  line = new_container(g, HORIZONTAL);
-  widget_add_child(g, top_container, line, -1);
-  timeline_plot = new_timeline(g, 512, 4, 5);
-  widget_add_child(g, line, timeline_plot, -1);
-  container_set_child_growable(g, line, timeline_plot, 1);
-  for (i = 0; i < 4; i++)
-    timeline_set_subline_background_color(g, timeline_plot, i,
-        new_color(g, i & 1 ? "#ddd" : "#eee"));
   timelog = new_timelog(h, database, "ENB_UL_TICK");
-  timeview = new_view_time(3600, 10, g, timeline_plot);
-  subview = new_subview_time(timeview, 0, FOREGROUND_COLOR);
+  subview = new_subview_time(timeview, 4, FOREGROUND_COLOR);
   logger_add_view(timelog, subview);
-  widget_add_child(g, line, new_label(g,"UL TICK/DCI/ACK/NACK "), 0);
 }
 
 int main(int n, char **v)
@@ -235,6 +230,7 @@ int main(int n, char **v)
   on_off(database, "ENB_INPUT_SIGNAL", is_on, 1);
   on_off(database, "ENB_UL_TICK", is_on, 1);
   on_off(database, "ENB_DL_TICK", is_on, 1);
+  on_off(database, "ENB_DLSCH_UE_DCI", is_on, 1);
 
   for (i = 0; i < on_off_n; i++)
     on_off(database, on_off_name[i], is_on, on_off_action[i]);
diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index 2566adc4c676f685952f3d6e0b996013fcbd75f2..29b632ecb9373f3ae92646a24c8b8ca7674ac492 100755
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -1162,6 +1162,9 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
       else
 	UE_id = i;
 
+      T(T_ENB_DLSCH_UE_DCI, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(UE_id),
+        T_INT(DCI_pdu->dci_alloc[i].rnti), T_INT(DCI_pdu->dci_alloc[i].format));
+
       if (UE_id>=0) {
 	if ((frame%100)==0) {
 	  LOG_D(PHY,"Frame %3d, SF %d \n",frame,subframe);