--- ./src/gui/main.cpp.ori	2007-11-21 14:55:04.510963000 +0800
+++ ./src/gui/main.cpp	2007-11-21 18:59:10.577455000 +0800
@@ -2599,6 +2599,7 @@
   GdkPixbuf *framepixbuf = NULL;
   GdkPixbuf *nzlsrc_pic = NULL;
   GdkPixbuf *tmpframe = NULL;
+  GdkPixbuf *tmp_pixbuf = NULL;
 
 #ifdef HAS_SDL
   Uint32 rmask, gmask, bmask, amask = 0;
@@ -2700,6 +2701,10 @@
   video_frame_rwidth = video_frame_width;
   video_frame_rheight = video_frame_height;
 
+  if (video_frame_rwidth == 1 && display_type == BOTH_SIDE) {
+    return;
+   }
+
   /* Update the display selection in the main and in the video popup menus */
   gtk_radio_menu_select_with_id (mw->main_menu, "local_video", display_type);
 
@@ -2757,7 +2762,7 @@
 				  lf_width * 3, 
 				  NULL, NULL);
 
-    if (!display_both_incrusted)
+    if (!display_both_incrusted && !display_both_side)
       /* scale the local image to the full available space, or,
        * if BOTH_SIDE: full_space/2 on X axis */ 
       zlsrc_pic =
@@ -2766,7 +2771,7 @@
 				 video_frame_rheight,
 				 bilinear_filtering?GDK_INTERP_BILINEAR:GDK_INTERP_NEAREST);
 
-    else
+    else if (!display_both_side)
       /* scale the local image to the requested small size
        * for BOTH_INCRUSTED */
       zlsrc_pic =
@@ -2775,6 +2780,35 @@
 				 (int) (video_frame_rheight * incr_lratio),
 				 bilinear_filtering?GDK_INTERP_BILINEAR:GDK_INTERP_NEAREST);
 
+      else {
+        /* scale the local image to the right part of video frame for BOTH_SIDE */
+        tmp_pixbuf =
+	  gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8,
+                          video_frame_rwidth,
+                          video_frame_rheight);
+
+        zrsrc_pic =
+          gdk_pixbuf_new_subpixbuf (tmp_pixbuf,
+                                    0, 0,
+                                    video_frame_rwidth / 2,
+                                    video_frame_rheight);
+  
+        zlsrc_pic =
+          gdk_pixbuf_new_subpixbuf (tmp_pixbuf,
+                                    video_frame_rwidth / 2, 0,
+                                    video_frame_rwidth / 2,
+                                    video_frame_rheight);
+     
+        gdk_pixbuf_scale (lsrc_pic, zlsrc_pic,
+                          0, 0,
+                          video_frame_rwidth / 2,
+                          video_frame_rheight,
+                          0, 0,
+                          lzoom, lzoom,
+                          bilinear_filtering?GDK_INTERP_BILINEAR:GDK_INTERP_NEAREST);
+
+     } 
+
     g_object_unref (lsrc_pic);
 
 
@@ -2792,11 +2826,21 @@
     }
     /* scale the remote image to the full available space, or,
      * if BOTH_SIDE: full_space/2 on X axis */
+    if (!display_both_side)
     zrsrc_pic =
       gdk_pixbuf_scale_simple (rsrc_pic,
 			       display_both_side?video_frame_rwidth / 2:video_frame_rwidth,
 			       video_frame_rheight,
 			       bilinear_filtering?GDK_INTERP_BILINEAR:GDK_INTERP_NEAREST);
+    else
+      gdk_pixbuf_scale (rsrc_pic, zrsrc_pic,
+                        0, 0,
+                        video_frame_rwidth / 2,
+                        video_frame_rheight,
+                        0, 0,
+                        rzoom, rzoom,
+                        bilinear_filtering?GDK_INTERP_BILINEAR:GDK_INTERP_NEAREST);
+
 
     g_object_unref (rsrc_pic);
   }
@@ -2935,25 +2979,6 @@
 
     if (zlsrc_pic && zrsrc_pic) {
 
-      GdkPixbuf *tmp_pixbuf = 
-	gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 
-			video_frame_rwidth, 
-			video_frame_rheight);
-
-      gdk_pixbuf_copy_area (zrsrc_pic,
-			    0, 0,
-			    video_frame_rwidth / 2,
-			    video_frame_rheight,
-			    tmp_pixbuf,
-			    0, 0);
-
-      gdk_pixbuf_copy_area (zlsrc_pic,
-			    0, 0,
-			    video_frame_rwidth / 2,
-			    video_frame_rheight,
-			    tmp_pixbuf,
-			    video_frame_rwidth / 2, 0);
-
       gtk_image_set_from_pixbuf (GTK_IMAGE (mw->main_video_image), 
 				 GDK_PIXBUF (tmp_pixbuf));
       g_object_unref (zrsrc_pic);
--- ./ekiga.schemas.in.in.ori	2007-11-21 14:48:47.508280000 +0800
+++ ./ekiga.schemas.in.in	2007-11-21 18:48:41.130388000 +0800
@@ -173,7 +173,7 @@
       <owner>Ekiga</owner>
       <type>list</type>
       <list_type>string</list_type>
-      <default>[SpeexWide-20.6k=1,iLBC-13k3=1,GSM-06.10=1,MS-GSM=1,SpeexNarrow-8k=1,G.711-uLaw-64k=1,G.711-ALaw-64k=1]</default>
+      <default>[G.711-ulaw-64k=1,SpeexWide-20.6k=0,iLBC-13k3=1,GSM-06.10=1,MS-GSM=1,SpeexNarrow-8k=1,G.711-ALaw-64k=1]</default>
       <locale name="C">
 	<short>The Audio Codecs List</short>
 	<long>The Audio Codecs List</long>
@@ -217,7 +217,7 @@
       <applyto>/apps/@PACKAGE_NAME@/codecs/audio/enable_echo_cancelation</applyto>
       <owner>Ekiga</owner>
       <type>bool</type>
-      <default>true</default>
+      <default>false</default>
       <locale name="C">
 	<short>Enable echo cancelation</short>
 	<long>If enabled, use echo cancelation</long>
