diff --git a/console/linphonec.c b/console/linphonec.c
index e0321089b4dd9abadb1aa422fa85987c7c20af13..7d5c0cdd2da291a94dcd816095d2e9202b045775 100644
--- a/console/linphonec.c
+++ b/console/linphonec.c
@@ -966,6 +966,8 @@ static void lpc_apply_video_params(){
 #ifdef HAVE_X11_XLIB_H
 		if (lpc_video_params.wid==0){  // do not manage window if embedded
 			x11_apply_video_params(&lpc_video_params,wid);
+		} else {
+		        linphone_core_show_video(linphonec, lpc_video_params.show);
 		}
 #endif
 	}
@@ -1265,6 +1267,7 @@ linphonec_parse_cmdline(int argc, char **argv)
 			if (arg_num < argc) {
 				char *tmp;
 				window_id = strtol( argv[arg_num], &tmp, 0 );
+				lpc_video_params.wid = window_id;
 			}
 		}
 		else if (old_arg_num == arg_num)
diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c
index 33c168522498166fd64680f07eb1235cac48ac3a..d2ef423644933f34a6dd9c8b2059af53b30a5ef4 100644
--- a/coreapi/linphonecore.c
+++ b/coreapi/linphonecore.c
@@ -1966,6 +1966,16 @@ void linphone_core_start_refered_call(LinphoneCore *lc, LinphoneCall *call){
 LinphoneProxyConfig * linphone_core_lookup_known_proxy(LinphoneCore *lc, const LinphoneAddress *uri){
 	const MSList *elem;
 	LinphoneProxyConfig *found_cfg=NULL;
+	LinphoneProxyConfig *default_cfg=lc->default_proxy;
+
+	/*always prefer the default proxy if it is matching the destination uri*/
+	if (default_cfg){
+		const char *domain=linphone_proxy_config_get_domain(default_cfg);
+		if (strcmp(domain,linphone_address_get_domain(uri))==0)
+			return default_cfg;
+	}
+
+	/*otherwise iterate through the other proxy config and return the first matching*/
 	for (elem=linphone_core_get_proxy_config_list(lc);elem!=NULL;elem=elem->next){
 		LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data;
 		const char *domain=linphone_proxy_config_get_domain(cfg);
@@ -3608,6 +3618,19 @@ void linphone_core_set_native_preview_window_id(LinphoneCore *lc, unsigned long
 #endif
 }
 
+/**
+ * Can be used to disable video showing to free XV port
+**/
+void linphone_core_show_video(LinphoneCore *lc, bool_t show){
+#ifdef VIDEO_ENABLED
+	ms_error("linphone_core_show_video %d", show);
+	LinphoneCall *call=linphone_core_get_current_call(lc);
+	if (call!=NULL && call->videostream){
+		video_stream_show_video(call->videostream,show);
+	}
+#endif
+}
+
 /**
  * Tells the core to use a separate window for local camera preview video, instead of
  * inserting local view within the remote video window.
diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h
index 14c850de836952363e74a5de24a180a2330f8d23..a3cd8d3e0c1470b003e997299800e19b17995f08 100644
--- a/coreapi/linphonecore.h
+++ b/coreapi/linphonecore.h
@@ -952,6 +952,9 @@ void linphone_core_use_preview_window(LinphoneCore *lc, bool_t yesno);
 int linphone_core_get_device_rotation(LinphoneCore *lc );
 void linphone_core_set_device_rotation(LinphoneCore *lc, int rotation);
 
+/* start or stop streaming video in case of embedded window */
+void linphone_core_show_video(LinphoneCore *lc, bool_t show);
+
 /*play/record support: use files instead of soundcard*/
 void linphone_core_use_files(LinphoneCore *lc, bool_t yesno);
 void linphone_core_set_play_file(LinphoneCore *lc, const char *file);
diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c
index 7a2f3e051b37fc795429aa136577a264f4c9677f..948e67d89e3acd074ad6333d23a29f8ca82a9571 100644
--- a/coreapi/sal_eXosip2.c
+++ b/coreapi/sal_eXosip2.c
@@ -2007,6 +2007,8 @@ static void register_set_contact(osip_message_t *msg, const char *contact){
 static void sal_register_add_route(osip_message_t *msg, const char *proxy){
 	char tmp[256]={0};
 	snprintf(tmp,sizeof(tmp)-1,"<%s;lr>",proxy);
+	
+	osip_list_special_free(&msg->routes,(void (*)(void*))osip_route_free);
 	osip_message_set_route(msg,tmp);
 }
 
diff --git a/mediastreamer2 b/mediastreamer2
index 4aaab3296337eb313d9b554dff1860cd23b3dbc9..8e3778f1fd61b44124f7303e540b936f9da4560f 160000
--- a/mediastreamer2
+++ b/mediastreamer2
@@ -1 +1 @@
-Subproject commit 4aaab3296337eb313d9b554dff1860cd23b3dbc9
+Subproject commit 8e3778f1fd61b44124f7303e540b936f9da4560f
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 04172f7b97e5bc9c8d632e504446992fb2ce052d..01deec29e3fc8d32150dbbbcd9cd4643deb28fcd 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,4 +1,5 @@
 # List of source files containing translatable strings.
+gtk/tunnel_config.ui
 gtk/calllogs.c
 gtk/conference.c
 gtk/logging.c