diff --git a/configure.ac b/configure.ac
index f3bb7bf57..06303cc27 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,7 +86,7 @@ fi
dnl Add the languages which your application supports here.
PKG_PROG_PKG_CONFIG
-ALL_LINGUAS="fr it de ja es pl cs nl sv pt_BR hu ru zh_CN nb_NO"
+ALL_LINGUAS="fr it de ja es pl cs nl sv pt_BR hu ru zh_CN nb_NO zh_TW"
AC_SUBST(ALL_LINGUAS)
AC_DEFINE_UNQUOTED(LINPHONE_ALL_LANGS, "$ALL_LINGUAS", [All supported languages])
diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c
index b3eabe12f..177a76a50 100644
--- a/coreapi/linphonecore.c
+++ b/coreapi/linphonecore.c
@@ -397,7 +397,7 @@ static void build_sound_devices_table(LinphoneCore *lc){
static void sound_config_read(LinphoneCore *lc)
{
- /*int tmp;*/
+ int tmp;
const char *tmpbuf;
const char *devid;
float gain=0;
@@ -458,12 +458,13 @@ static void sound_config_read(LinphoneCore *lc)
linphone_core_set_play_file(lc,lp_config_get_string(lc->config,"sound","hold_music",PACKAGE_SOUND_DIR "/" HOLD_MUSIC));
check_sound_device(lc);
lc->sound_conf.latency=0;
-
- linphone_core_enable_echo_cancellation(lc,
- lp_config_get_int(lc->config,"sound","echocancelation",0) |
- lp_config_get_int(lc->config,"sound","echocancellation",0)
- );
-
+#if !defined(TARGET_OS_IPHONE) && !defined(ANDROID)
+ tmp=TRUE;
+#else
+ tmp=FALSE;
+#endif
+ tmp=lp_config_get_int(lc->config,"sound","echocancellation",tmp);
+ linphone_core_enable_echo_cancellation(lc,tmp);
linphone_core_enable_echo_limiter(lc,
lp_config_get_int(lc->config,"sound","echolimiter",0));
linphone_core_enable_agc(lc,
diff --git a/gtk/incall_view.c b/gtk/incall_view.c
index 9a4861a5d..96f672cfc 100644
--- a/gtk/incall_view.c
+++ b/gtk/incall_view.c
@@ -58,7 +58,7 @@ static GtkWidget *make_tab_header(int number){
GtkWidget *w=gtk_hbox_new (FALSE,0);
GtkWidget *i=create_pixmap ("status-green.png");
GtkWidget *l;
- gchar *text=g_strdup_printf("Call #%i",number);
+ gchar *text=g_strdup_printf(_("Call #%i"),number);
l=gtk_label_new (text);
gtk_box_pack_start (GTK_BOX(w),i,FALSE,FALSE,0);
gtk_box_pack_end(GTK_BOX(w),l,TRUE,TRUE,0);
@@ -84,7 +84,7 @@ static void transfer_button_clicked(GtkWidget *button, gpointer call_ref){
if (other_call!=call){
int call_index=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(call_view),"call_index"));
char *remote_uri=linphone_call_get_remote_address_as_string (other_call);
- char *text=g_strdup_printf("Transfer to call #%i with %s",call_index,remote_uri);
+ char *text=g_strdup_printf(_("Transfer to call #%i with %s"),call_index,remote_uri);
menu_item=gtk_image_menu_item_new_with_label(text);
ms_free(remote_uri);
g_free(text);
diff --git a/gtk/main.c b/gtk/main.c
index 5e16710db..9adec52e8 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -615,9 +615,10 @@ static void completion_add_text(GtkEntry *entry, const char *text){
void linphone_gtk_call_terminated(LinphoneCall *call, const char *error){
GtkWidget *mw=linphone_gtk_get_main_window();
- gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"terminate_call"),FALSE);
- gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"start_call"),TRUE);
-
+ if (linphone_core_get_calls(linphone_gtk_get_core())==NULL){
+ gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"terminate_call"),FALSE);
+ gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"start_call"),TRUE);
+ }
if (linphone_gtk_use_in_call_view() && call)
linphone_gtk_in_call_view_terminate(call,error);
update_video_title();
diff --git a/gtk/password.ui b/gtk/password.ui
index 59ac15212..2d9f53241 100644
--- a/gtk/password.ui
+++ b/gtk/password.ui
@@ -98,7 +98,7 @@
end