diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c
index 42ea7259c31963ff871c201b8215745086532223..fd30ff9d00758f270b5f9493d5e7efa367a3e5d5 100644
--- a/common/config/config_cmdline.c
+++ b/common/config/config_cmdline.c
@@ -35,6 +35,8 @@
 #include <errno.h>
 #include "config_userapi.h"
 
+extern char *emul_iface;
+
 int processoption(paramdef_t *cfgoptions, char *value)
 {
 char *tmpval = value;
@@ -54,8 +56,9 @@ char defbool[2]="1";
        	case TYPE_STRING:
            config_check_valptr(cfgoptions, (char **)(cfgoptions->strptr), sizeof(char *));
            config_check_valptr(cfgoptions, cfgoptions->strptr, strlen(tmpval+1));
+	   printf("cfgoptions->strptr %p (&emul_iface %p, emul_iface %p)\n",cfgoptions->strptr,&emul_iface,emul_iface);
            sprintf(*(cfgoptions->strptr), "%s",tmpval);
-           printf_cmdl("[CONFIG] %s set to  %s from command line\n", cfgoptions->optname, tmpval);
+           printf("[CONFIG] %s set to  %s from command line\n", cfgoptions->optname, tmpval);
 	   optisset=1;
         break;
 	
@@ -112,6 +115,7 @@ int j;
 char *pp;
 char *cfgpath; 
  
+
   j = (prefix ==NULL) ? 0 : strlen(prefix); 
   cfgpath = malloc( j + MAX_OPTNAME_SIZE +1);
   if (cfgpath == NULL) {
diff --git a/targets/RT/USER/lte-softmodem-stub.c b/targets/RT/USER/lte-softmodem-stub.c
index 3e62bc68f9578c111a2b53cc6f59fe9c37f573cd..958bb03f7bdd0a9bd3bbc60520eb60b586fabdc3 100644
--- a/targets/RT/USER/lte-softmodem-stub.c
+++ b/targets/RT/USER/lte-softmodem-stub.c
@@ -130,6 +130,8 @@ uint8_t nfapi_mode = 3;
 
 uint16_t sf_ahead=4;
 
+char *emul_iface;
+
 pthread_cond_t sync_cond;
 pthread_mutex_t sync_mutex;
 int sync_var=-1; //!< protected by mutex \ref sync_mutex.
@@ -228,7 +230,7 @@ extern PHY_VARS_UE* init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms,
 			  uint8_t abstraction_flag);
 
 extern void init_eNB_afterRU(void);
-extern void init_UE_stub(int nb_inst,int,int);
+extern void init_UE_stub(int nb_inst,int,int,char*);
 extern int init_timer_thread(void);
 
 int transmission_mode=1;
@@ -672,13 +674,16 @@ static void get_options(void) {
      uint8_t n_rb_dl;
 
      paramdef_t cmdline_uemodeparams[] =CMDLINE_UEMODEPARAMS_DESC;
-     paramdef_t cmdline_ueparams[] =CMDLINE_UEPARAMS_DESC;
+     paramdef_t cmdline_ueparams[] =CMDLINE_UEPARAMS_DESC; 
 
      set_default_frame_parms(frame_parms);
 
+     emul_iface=malloc(100);
+
      config_process_cmdline( cmdline_uemodeparams,sizeof(cmdline_uemodeparams)/sizeof(paramdef_t),NULL);
      config_process_cmdline( cmdline_ueparams,sizeof(cmdline_ueparams)/sizeof(paramdef_t),NULL);
 
+
       if (loopfile != NULL) {
   	  printf("Input file for hardware emulation: %s",loopfile);
   	  mode=loop_through_memory;
@@ -739,6 +744,7 @@ static void get_options(void) {
 	    rx_gain[0][CC_id] = rx_gain[0][0];
 	    tx_gain[0][CC_id] = tx_gain[0][0];
       }
+      printf("Emulation interface : %s (%p,%p)\n",emul_iface,emul_iface,&emul_iface);
   } /* UE_flag > 0 */
 #if T_TRACER
   paramdef_t cmdline_ttraceparams[] =CMDLINE_TTRACEPARAMS_DESC ;
@@ -1359,7 +1365,7 @@ int main( int argc, char **argv )
 
 
     init_timer_thread();
-    init_UE_stub(1,eMBMS_active,uecap_xer_in);
+    init_UE_stub(1,eMBMS_active,uecap_xer_in,emul_iface);
 
     /*for(CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
       PHY_vars_UE_g[0][CC_id]->rf_map.card=0;
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index 6cb872e21b04324469be209c1576de93b3150093..b76f8734361c05756bfc89a7bfd9061687d896bb 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -120,6 +120,8 @@ uint8_t nfapi_mode = 2;
 
 uint16_t sf_ahead=4;
 
+char emul_iface[100];
+
 pthread_cond_t sync_cond;
 pthread_mutex_t sync_mutex;
 int sync_var=-1; //!< protected by mutex \ref sync_mutex.
@@ -609,6 +611,7 @@ static void get_options(void) {
   if (UE_flag > 0) {
      uint8_t n_rb_dl;
      nfapi_mode=0;
+
      paramdef_t cmdline_uemodeparams[] =CMDLINE_UEMODEPARAMS_DESC;
      paramdef_t cmdline_ueparams[] =CMDLINE_UEPARAMS_DESC;
 
diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h
index c12e275f92b8634fc46ad56ef70f3e3212e98f86..a1efac88606c8f580d2a60e904ef4aae121280f3 100644
--- a/targets/RT/USER/lte-softmodem.h
+++ b/targets/RT/USER/lte-softmodem.h
@@ -72,6 +72,7 @@
 #define CONFIG_HLP_DLMCS         "Set the maximum downlink MCS\n"
 #define CONFIG_HLP_STMON         "Enable processing timing measurement of lte softmodem on per subframe basis \n"
 #define CONFIG_HLP_PRB           "Set the PRB, valid values: 6, 25, 50, 100  \n"    
+#define CONFIG_HLP_EMULIFACE     "Set the interface name for the multicast transport for emulation mode (e.g. eth0, lo, etc.)  \n"    
 #define CONFIG_HLP_MSLOTS        "Skip the missed slots/subframes \n"    
 #define CONFIG_HLP_ULMCS         "Set the maximum uplink MCS\n"
 #define CONFIG_HLP_TDD           "Set hardware to TDD mode (default: FDD). Used only with -U (otherwise set in config file).\n"
@@ -128,7 +129,8 @@
 {"ue-scan-carrier",  	       CONFIG_HLP_UESCAN,     PARAMFLAG_BOOL,	iptr:&UE_scan_carrier,  	    defintval:0,    TYPE_INT,	   0},     \
 {"ue-max-power",     	       NULL,		      0,		iptr:&(tx_max_power[0]),	    defintval:90,   TYPE_INT,	   0},     \
 {"r"  ,                        CONFIG_HLP_PRB,        0,                u8ptr:&n_rb_dl,                     defintval:0,    TYPE_UINT8,    0},     \
-}
+{"emul-iface",                 CONFIG_HLP_EMULIFACE,  0,                strptr:&emul_iface,                  defstrval:"lo", TYPE_STRING,   100} \
+ }
 
 
 extern int16_t dlsch_demod_shift;
diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c
index 0c14d93e76bb53d75becc695bfad18dfabda1539..b7e80add5de2595c884265090e62a9bd9ee11a9a 100644
--- a/targets/RT/USER/lte-ue.c
+++ b/targets/RT/USER/lte-ue.c
@@ -77,7 +77,7 @@ void init_UE_threads(int);
 void init_UE_threads_stub(int);
 void *UE_thread(void *arg);
 void init_UE(int nb_inst,int,int);
-void init_UE_stub(int nb_inst,int,int);
+void init_UE_stub(int nb_inst,int,int,char*);
 extern void oai_subframe_ind(uint16_t sfn, uint16_t sf);
 //extern int tx_req_UE_MAC1();
 
@@ -270,7 +270,7 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in) {
 }
 
 
-void init_UE_stub(int nb_inst,int eMBMS_active, int uecap_xer_in) {
+void init_UE_stub(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_iface) {
 
   int         inst;
 
@@ -291,7 +291,8 @@ void init_UE_stub(int nb_inst,int eMBMS_active, int uecap_xer_in) {
 
   printf("UE threads created \n");
 
-  multicast_link_start(ue_stub_rx_handler,0,"lo");
+  LOG_I(PHY,"Starting multicast link on %s\n",emul_iface);
+  multicast_link_start(ue_stub_rx_handler,0,emul_iface);
 
 
 }