diff -crN ./gtk+/configure.in /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/configure.in
*** ./gtk+/configure.in	Mon Aug 29 17:47:13 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/configure.in	Tue Feb 21 13:03:39 2006
***************
*** 694,700 ****
  
  use_la_modules=false
  case $host in
!   *-aix*) use_la_modules=true
  esac
  
  if $use_la_modules ; then
--- 694,700 ----
  
  use_la_modules=false
  case $host in
!   *) use_la_modules=false
  esac
  
  if $use_la_modules ; then
***************
*** 1045,1054 ****
    #
    # Check for basic X packages; we use pkg-config if available
    #
!   if $PKG_CONFIG --exists x11 xext; then
      have_base_x_pc=true
!     X_PACKAGES="$X_PACKAGES x11 xext"
!     x_libs="`pkg-config --libs x11 xext`"
      
      # Strip out any .la files that pkg-config might give us (this happens
      # with -uninstalled.pc files)
--- 1045,1054 ----
    #
    # Check for basic X packages; we use pkg-config if available
    #
!   if $PKG_CONFIG --exists x11 xext xrender; then
      have_base_x_pc=true
!     X_PACKAGES="$X_PACKAGES x11 xext xrender"
!     x_libs="`pkg-config --libs x11 xext xrender`"
      
      # Strip out any .la files that pkg-config might give us (this happens
      # with -uninstalled.pc files)
***************
*** 1070,1080 ****
      fi
      
      x_cflags="$X_CFLAGS"
!     x_libs_for_checks="$X_LIBS -lXext -lX11 $X_EXTRA_LIBS"
  
      GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
      GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
!     GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS"
    fi
  
    # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
--- 1070,1080 ----
      fi
      
      x_cflags="$X_CFLAGS"
!     x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
  
      GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
      GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
!     GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 -lXrender $X_EXTRA_LIBS"
    fi
  
    # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
***************
*** 1093,1099 ****
                  AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
    AC_CHECK_FUNC(XextFindDisplay, :,
                  AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
! 
    # Check for xReply
  
    AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
--- 1093,1101 ----
                  AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
    AC_CHECK_FUNC(XextFindDisplay, :,
                  AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
!    AC_CHECK_FUNC(XRenderQueryExtension, :,
!   	        AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
!   	
    # Check for xReply
  
    AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
diff -crN ./gtk+/demos/Makefile.am /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/demos/Makefile.am
*** ./gtk+/demos/Makefile.am	Fri Jun  6 02:52:19 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/demos/Makefile.am	Tue Feb 21 13:03:39 2006
***************
*** 47,54 ****
  	$(pixbuf_csource) --raw --build-list		\
  	        apple_red  $(srcdir)/apple-red.png	\
                  gnome_foot $(srcdir)/gnome-foot.png	\
!         > test-inline-pixbufs.h				\
! 	|| (rm -f test-inline-pixbufs.h && false)
  
  testpixbuf_DEPENDENCIES = $(DEPS)
  testpixbuf_drawable_DEPENDENCIES = $(DEPS)
--- 47,54 ----
  	$(pixbuf_csource) --raw --build-list		\
  	        apple_red  $(srcdir)/apple-red.png	\
                  gnome_foot $(srcdir)/gnome-foot.png	\
!         > test-inline-pixbufs.h.X			\
! 	&& mv test-inline-pixbufs.h.X test-inline-pixbufs.h
  
  testpixbuf_DEPENDENCIES = $(DEPS)
  testpixbuf_drawable_DEPENDENCIES = $(DEPS)
diff -crN ./gtk+/gdk-pixbuf/io-png.c /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gdk-pixbuf/io-png.c
*** ./gtk+/gdk-pixbuf/io-png.c	Tue May 24 19:09:56 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gdk-pixbuf/io-png.c	Tue Feb 21 13:03:39 2006
***************
*** 184,190 ****
                               error_msg);
          }
  
!         longjmp (png_save_ptr->jmpbuf, 1);
  }
  
  static void
--- 184,191 ----
                               error_msg);
          }
  
! 	longjmp (png_jmpbuf (png_save_ptr), 1);
! /*        longjmp (png_save_ptr->jmpbuf, 1); */
  }
  
  static void
***************
*** 272,278 ****
  		return NULL;
  	}
  
! 	if (setjmp (png_ptr->jmpbuf)) {
  	    	if (rows)
  		  	g_free (rows);
  
--- 273,280 ----
  		return NULL;
  	}
  
! /*	if (setjmp (png_ptr->jmpbuf)) { */
! 	if (setjmp (png_jmpbuf(png_ptr))) {
  	    	if (rows)
  		  	g_free (rows);
  
***************
*** 433,439 ****
                  return NULL;
          }
          
! 	if (setjmp (lc->png_read_ptr->jmpbuf)) {
  		if (lc->png_info_ptr)
  			png_destroy_read_struct(&lc->png_read_ptr, NULL, NULL);
                  g_free(lc);
--- 435,442 ----
                  return NULL;
          }
          
! /*	if (setjmp (lc->png_read_ptr->jmpbuf)) { */
! 	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
  		if (lc->png_info_ptr)
  			png_destroy_read_struct(&lc->png_read_ptr, NULL, NULL);
                  g_free(lc);
***************
*** 505,511 ****
          lc->error = error;
          
          /* Invokes our callbacks as needed */
! 	if (setjmp (lc->png_read_ptr->jmpbuf)) {
                  lc->error = NULL;
  		return FALSE;
  	} else {
--- 508,515 ----
          lc->error = error;
          
          /* Invokes our callbacks as needed */
! /*	if (setjmp (lc->png_read_ptr->jmpbuf)) { */
! 	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
                  lc->error = NULL;
  		return FALSE;
  	} else {
***************
*** 719,725 ****
                               error_msg);
          }
  
!         longjmp (png_read_ptr->jmpbuf, 1);
  }
  
  static void
--- 723,730 ----
                               error_msg);
          }
  
! /*        longjmp (png_read_ptr->jmpbuf, 1); */
! 	longjmp (png_jmpbuf(png_read_ptr));
  }
  
  static void
***************
*** 909,915 ****
  	       success = FALSE;
  	       goto cleanup;
         }
!        if (setjmp (png_ptr->jmpbuf)) {
  	       success = FALSE;
  	       goto cleanup;
         }
--- 914,922 ----
  	       success = FALSE;
  	       goto cleanup;
         }
! 
! /*       if (setjmp (png_ptr->jmpbuf)) { */
! 	if (setjmp (png_jmpbuf(png_ptr))) {
  	       success = FALSE;
  	       goto cleanup;
         }
diff -crN ./gtk+/gdk-pixbuf/io-xpm.c /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gdk-pixbuf/io-xpm.c
*** ./gtk+/gdk-pixbuf/io-xpm.c	Tue Mar  8 04:59:45 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gdk-pixbuf/io-xpm.c	Tue Feb 21 13:03:39 2006
***************
*** 405,411 ****
  		/* Fall through to the xpm_read_string. */
  
  	case op_body:
! 		xpm_read_string (h->infile, &h->buffer, &h->buffer_size);
  		return h->buffer;
  
  	default:
--- 405,412 ----
  		/* Fall through to the xpm_read_string. */
  
  	case op_body:
! 		if(!xpm_read_string (h->infile, &h->buffer, &h->buffer_size))
! 			return NULL;
  		return h->buffer;
  
  	default:
***************
*** 500,506 ****
                               _("XPM has invalid number of chars per pixel"));
  		return NULL;
  	}
! 	if (n_col <= 0 || n_col >= G_MAXINT / (cpp + 1)) {
                  g_set_error (error,
                               GDK_PIXBUF_ERROR,
                               GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
--- 501,509 ----
                               _("XPM has invalid number of chars per pixel"));
  		return NULL;
  	}
! 	if (n_col <= 0 || 
! 	    n_col >= G_MAXINT / (cpp + 1) || 
! 	    n_col >= G_MAXINT / sizeof (XPMColor)) {
                  g_set_error (error,
                               GDK_PIXBUF_ERROR,
                               GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
diff -crN ./gtk+/gdk/x11/gdkevents-x11.c /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gdk/x11/gdkevents-x11.c
*** ./gtk+/gdk/x11/gdkevents-x11.c	Fri Aug 19 07:46:06 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gdk/x11/gdkevents-x11.c	Thu Jun  8 14:04:10 2006
***************
*** 39,44 ****
--- 39,45 ----
  #include "xsettings-client.h"
  
  #include <string.h>
+ #include <stdlib.h>
  
  #include "gdkinputprivate.h"
  
***************
*** 1245,1251 ****
  	}
        
        /* Handle focusing (in the case where no window manager is running */
!       if (toplevel && xevent->xcrossing.detail != NotifyInferior)
  	{
  	  toplevel->has_pointer = TRUE;
  
--- 1246,1254 ----
  	}
        
        /* Handle focusing (in the case where no window manager is running */
!       if (toplevel &&
! 	  xevent->xcrossing.detail != NotifyInferior &&
! 	  xevent->xcrossing.focus && !toplevel->has_focus_window)
  	{
  	  toplevel->has_pointer = TRUE;
  
***************
*** 2198,2217 ****
    GdkEvent *event;
    XEvent xevent;
    Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
  
    while (!_gdk_event_queue_find_first(display) && XPending (xdisplay))
      {
        XNextEvent (xdisplay, &xevent);
  
        switch (xevent.type)
! 	{
! 	case KeyPress:
! 	case KeyRelease:
! 	  break;
! 	default:
! 	  if (XFilterEvent (&xevent, None))
! 	    continue;
! 	}
        
        event = gdk_event_new (GDK_NOTHING);
        
--- 2201,2250 ----
    GdkEvent *event;
    XEvent xevent;
    Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
+   const char *xmod;
+   const char *xlang;
+   const char *im="@im";
+   const char *wn="XWNMO";
+   const char *wnn8="htt";
+   const char *jp1="JA_JP";
+   const char *jp2="Ja_JP";
+   const char *jp3="ja_JP";
+ /*  int i; */
  
    while (!_gdk_event_queue_find_first(display) && XPending (xdisplay))
      {
        XNextEvent (xdisplay, &xevent);
  
+ /* Workaround to use Wnn7 im with Japanese Environment */
+ 
+    xmod=getenv("XMODIFIERS");
+    xlang=getenv("LANG");
+ 
+ /*   if(xlang != NULL) {
+      for(i=0;i<2;i++){
+      upper[i]=(char) toupper((int) xlang[i]);
+      if(upper[i]==0) break;
+      }
+     upper[i]=0;
+    } */
+ 
+    if((strstr(xmod,im) != NULL) && ((strstr(xmod,wn) != NULL)||(strstr(xmod,wnn8) != NULL)) && ( (strcmp(xlang,jp1) == 0) || (strcmp(xlang,jp2) == 0) || (strcmp(xlang,jp3) == 0))) {  
+ 
        switch (xevent.type)
!         {
!         case KeyPress:
!         case KeyRelease:
!           break;
!         default:
!           if (XFilterEvent (&xevent, None))
!             continue;
!         }
!    }
!    else {
!           if (XFilterEvent (&xevent, None))
!             continue;
!    }
! /* End Workaround */
        
        event = gdk_event_new (GDK_NOTHING);
        
***************
*** 2579,2592 ****
    if (gdk_error_trap_pop () == Success)
      {
        screen_x11->wmspec_check_window = *xwindow;
        screen_x11->need_refetch_net_supported = TRUE;
        screen_x11->need_refetch_wm_name = TRUE;
        
        /* Careful, reentrancy */
        _gdk_x11_screen_window_manager_changed (GDK_SCREEN (screen_x11));
      }
- 
-   XFree (xwindow);    
  }
  
  /**
--- 2612,2625 ----
    if (gdk_error_trap_pop () == Success)
      {
        screen_x11->wmspec_check_window = *xwindow;
+       XFree (xwindow);
+       
        screen_x11->need_refetch_net_supported = TRUE;
        screen_x11->need_refetch_wm_name = TRUE;
        
        /* Careful, reentrancy */
        _gdk_x11_screen_window_manager_changed (GDK_SCREEN (screen_x11));
      }
  }
  
  /**
***************
*** 2800,2807 ****
    { "Gtk/ButtonImages", "gtk-button-images" },
    { "Gtk/MenuImages", "gtk-menu-images" },
    { "Gtk/MenuBarAccel", "gtk-menu-bar-accel" },
-   { "Gtk/CursorThemeName", "gtk-cursor-theme-name" },
-   { "Gtk/CursorThemeSize", "gtk-cursor-theme-size" },
    { "Xft/Antialias", "gtk-xft-antialias" },
    { "Xft/Hinting", "gtk-xft-hinting" },
    { "Xft/HintStyle", "gtk-xft-hintstyle" },
--- 2833,2838 ----
diff -crN ./gtk+/gtk/Makefile.am /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gtk/Makefile.am
*** ./gtk+/gtk/Makefile.am	Mon Aug  1 21:21:00 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gtk/Makefile.am	Tue Feb 21 13:03:39 2006
***************
*** 90,96 ****
  libadd =								\
  	$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la	\
  	$(top_builddir)/gdk/$(gdktargetlib)				\
! 	$(GTK_DEP_LIBS)
  
  if OS_UNIX
  libadd += xdgmime/libxdgmime.la
--- 90,97 ----
  libadd =								\
  	$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la	\
  	$(top_builddir)/gdk/$(gdktargetlib)				\
! 	$(GTK_DEP_LIBS)							\
! 	$(GDK_DEP_LIBS)
  
  if OS_UNIX
  libadd += xdgmime/libxdgmime.la
***************
*** 671,677 ****
  libgtk_linux_fb_2_0_la_LDFLAGS = $(libtool_opts)
  libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts)
  
! libgtk_x11_2_0_la_LIBADD = $(libadd)
  libgtk_linux_fb_2_0_la_LIBADD = $(libadd)
  libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32
  libgtk_win32_2_0_la_DEPENDENCIES = $(gtk_def) $(gtk_win32_res)
--- 672,678 ----
  libgtk_linux_fb_2_0_la_LDFLAGS = $(libtool_opts)
  libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts)
  
! libgtk_x11_2_0_la_LIBADD = $(libadd) -lX11
  libgtk_linux_fb_2_0_la_LIBADD = $(libadd)
  libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32
  libgtk_win32_2_0_la_DEPENDENCIES = $(gtk_def) $(gtk_win32_res)
diff -crN ./gtk+/gtk/gtkfilechooserbutton.c /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gtk/gtkfilechooserbutton.c
*** ./gtk+/gtk/gtkfilechooserbutton.c	Fri Aug 19 20:21:31 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gtk/gtkfilechooserbutton.c	Tue Feb 21 13:03:39 2006
***************
*** 148,160 ****
    guint8 n_volumes;
    guint8 n_shortcuts;
    guint8 n_bookmarks;
!   guint8 has_bookmark_separator       : 1;
!   guint8 has_current_folder_separator : 1;
!   guint8 has_current_folder           : 1;
!   guint8 has_other_separator          : 1;
  
    /* Used for hiding/showing the dialog when the button is hidden */
!   guint8 active                       : 1;
  };
  
  
--- 148,160 ----
    guint8 n_volumes;
    guint8 n_shortcuts;
    guint8 n_bookmarks;
!   unsigned int has_bookmark_separator       : 1;
!   unsigned int has_current_folder_separator : 1;
!   unsigned int has_current_folder           : 1;
!   unsigned int has_other_separator          : 1;
  
    /* Used for hiding/showing the dialog when the button is hidden */
!   unsigned int active                       : 1;
  };
  
  
***************
*** 960,966 ****
        break;
  
      case TEXT_PLAIN:
!       text = gtk_selection_data_get_text (data);
        path = gtk_file_path_new_steal (text);
        _gtk_file_chooser_select_path (GTK_FILE_CHOOSER (priv->dialog), path,
  				     NULL);
--- 960,966 ----
        break;
  
      case TEXT_PLAIN:
!       text = (char *) gtk_selection_data_get_text (data);
        path = gtk_file_path_new_steal (text);
        _gtk_file_chooser_select_path (GTK_FILE_CHOOSER (priv->dialog), path,
  				     NULL);
diff -crN ./gtk+/gtk/gtktoolbar.c /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gtk/gtktoolbar.c
*** ./gtk+/gtk/gtktoolbar.c	Fri Aug 26 05:05:14 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gtk/gtktoolbar.c	Tue Feb 21 13:03:39 2006
***************
*** 3802,3808 ****
        GtkAllocation	goal_allocation;
        guint		is_placeholder : 1;
        guint		disappearing : 1;
!       TriState		has_menu : 2;
      } tool_item;
      
      struct
--- 3802,3808 ----
        GtkAllocation	goal_allocation;
        guint		is_placeholder : 1;
        guint		disappearing : 1;
!       TriState		has_menu;
      } tool_item;
      
      struct
diff -crN ./gtk+/gtk/updateiconcache.c /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gtk/updateiconcache.c
*** ./gtk+/gtk/updateiconcache.c	Fri Aug 26 21:03:25 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/gtk/updateiconcache.c	Tue Feb 21 13:03:39 2006
***************
*** 696,702 ****
    guint len = 0;
  
    if (image->has_embedded_rect ||
!       image->attach_points > 0 ||
        image->n_display_names > 0)
      len += 12;
  
--- 696,702 ----
    guint len = 0;
  
    if (image->has_embedded_rect ||
!       (int) image->attach_points > 0 ||
        image->n_display_names > 0)
      len += 12;
  
diff -crN ./gtk+/modules/input/gtkimcontextxim.c /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/modules/input/gtkimcontextxim.c
*** ./gtk+/modules/input/gtkimcontextxim.c	Thu Jun 30 20:42:44 2005
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/modules/input/gtkimcontextxim.c	Tue Feb 21 13:03:39 2006
***************
*** 103,108 ****
--- 103,112 ----
  
    /* Currently focused GtkIMContextXIM for the toplevel, if any */
    GtkIMContextXIM *context;
+ 
+   /* Current text of this status window (set if the window is not focused
+      in order to set the text back to the status window when focused in) */
+   gchar *fout_text;
  };
  
  static void     gtk_im_context_xim_class_init         (GtkIMContextXIMClass  *class);
***************
*** 138,143 ****
--- 142,150 ----
  static void          status_window_set_text (StatusWindow *status_window,
  					     const gchar  *text);
  
+ static void set_status_window_previous_text (GtkIMContextXIM *context_xim);
+ static void set_status_window_fout_text (GtkIMContextXIM *context_xim);
+ 
  static void xim_destroy_callback   (XIM      xim,
  				    XPointer client_data,
  				    XPointer call_data);
***************
*** 789,794 ****
--- 796,802 ----
  
        context_xim->has_focus = TRUE;
        update_status_window (context_xim);
+       set_status_window_previous_text (context_xim);
        
        if (ic)
  	XSetICFocus (ic);
***************
*** 807,812 ****
--- 815,821 ----
        XIC ic = gtk_im_context_xim_get_ic (context_xim);
        
        context_xim->has_focus = FALSE;
+       set_status_window_fout_text (context_xim);
        update_status_window (context_xim);
    
        if (ic)
***************
*** 1030,1040 ****
    GtkIMContextXIM *context_xim = GTK_IM_CONTEXT_XIM (context);
  
    if (context_xim->preedit_length)
!     {
!       context_xim->preedit_length = 0;
!       if (!context_xim->finalizing)
! 	g_signal_emit_by_name (context_xim, "preedit_changed");
!     }
  
    if (!context_xim->finalizing)
      g_signal_emit_by_name (context, "preedit_end");  
--- 1039,1049 ----
    GtkIMContextXIM *context_xim = GTK_IM_CONTEXT_XIM (context);
  
    if (context_xim->preedit_length)
!   {
!     context_xim->preedit_length = 0;
!     if (!context_xim->finalizing)
!       g_signal_emit_by_name (context_xim, "preedit_changed");
!   }
  
    if (!context_xim->finalizing)
      g_signal_emit_by_name (context, "preedit_end");  
***************
*** 1047,1053 ****
    GError *error = NULL;
    gchar *result = NULL;
  
!   if (xim_text && xim_text->string.multi_byte)
      {
        if (xim_text->encoding_is_wchar)
  	{
--- 1056,1062 ----
    GError *error = NULL;
    gchar *result = NULL;
  
!   if (xim_text && xim_text->string.multi_byte && *xim_text->string.multi_byte)
      {
        if (xim_text->encoding_is_wchar)
  	{
***************
*** 1151,1160 ****
  	}
      }
  
!   for (i = 0; i < new_text_length; i++)
      {
!       context->preedit_chars[chg_first + i] = new_text[i];
!       context->feedbacks[chg_first + i] = new_xim_text->feedback[i];
      }
  
    context->preedit_length += diff;
--- 1160,1179 ----
  	}
      }
  
!   if (new_text && *new_text)
      {
!       for (i = 0; i < new_text_length; i++)
!         {
!           context->preedit_chars[chg_first + i] = new_text[i];
!           context->feedbacks[chg_first + i] = new_xim_text->feedback[i];
!         }
!     }
!   else
!     {
!       for (i = 0; i < new_xim_text->length; i++)
!         {
! 	  context->feedbacks[chg_first + i] = new_xim_text->feedback[i];
! 	}
      }
  
    context->preedit_length += diff;
***************
*** 1733,1738 ****
--- 1752,1758 ----
    
    status_window = g_new0 (StatusWindow, 1);
    status_window->toplevel = toplevel;
+   status_window->fout_text = NULL;
  
    status_windows = g_slist_prepend (status_windows, status_window);
  
***************
*** 1820,1825 ****
--- 1840,1886 ----
    on_status_toplevel_configure (status_window->toplevel, NULL, status_window);
  }
  
+ /* Set the text of the status window back from the text that was
+    saved when the window was focused out */
+ static void
+ set_status_window_previous_text (GtkIMContextXIM *context_xim)
+ {
+   StatusWindow *status_window = context_xim->status_window;
+   if (status_window)
+     {
+       GtkWidget *label;
+       
+       if (!status_window->window)
+ 	status_window_make_window (status_window);
+       
+       label = GTK_BIN (status_window->window)->child;
+       if (status_window->fout_text)
+         {
+ 	  status_window_set_text (status_window, status_window->fout_text);
+ 	  g_free (status_window->fout_text);
+ 	  status_window->fout_text = NULL;
+ 	}
+     }
+ }
+ 
+ /* Save the text of the status window so that it could be 
+    written back once the window is focused in */
+ static void
+ set_status_window_fout_text (GtkIMContextXIM *context_xim)
+ {
+   StatusWindow *status_window = context_xim->status_window;
+   if (status_window)
+     {
+       GtkWidget *label;
+       
+       if (!status_window->window)
+ 	status_window_make_window (status_window);
+       
+       label = GTK_BIN (status_window->window)->child;
+       status_window->fout_text = g_strdup (gtk_label_get_label (GTK_LABEL (label)));
+     }
+ }
+ 
  /* Updates the text in the status window, hiding or
   * showing the window as necessary.
   */
diff -crN ./gtk+/modules/input/imcedilla.c /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/modules/input/imcedilla.c
*** ./gtk+/modules/input/imcedilla.c	Sat Nov 20 00:30:45 2004
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/modules/input/imcedilla.c	Tue Feb 21 13:03:39 2006
***************
*** 91,97 ****
    N_("Cedilla"),                   /* Human readable name */
    "gtk+",			   /* Translation domain */
     GTK_LOCALEDIR,		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
!   "az:ca:co:fr:gv:oc:pt:sq:tr:wa"  /* Languages for which this module is the default */
  };
  
  static const GtkIMContextInfo *info_list[] = {
--- 91,97 ----
    N_("Cedilla"),                   /* Human readable name */
    "gtk+",			   /* Translation domain */
     GTK_LOCALEDIR,		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
!   "az:co:gv:oc:sq:tr:wa"  /* Languages for which this module is the default */
  };
  
  static const GtkIMContextInfo *info_list[] = {
diff -crN ./gtk+/modules/input/imxim.c /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/modules/input/imxim.c
*** ./gtk+/modules/input/imxim.c	Sat Apr 24 11:58:48 2004
--- /gestconf/project/GNOME_ACL/GNOME/build/BLD_M_gnome2_12f1/src/./gtk+/modules/input/imxim.c	Tue Feb 21 13:03:39 2006
***************
*** 28,34 ****
    N_("X Input Method"),            /* Human readable name */
    GETTEXT_PACKAGE,		   /* Translation domain */
    GTK_LOCALEDIR,		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
!   "ko:ja:th:zh"		           /* Languages for which this module is the default */
  };
  
  static const GtkIMContextInfo *info_list[] = {
--- 28,34 ----
    N_("X Input Method"),            /* Human readable name */
    GETTEXT_PACKAGE,		   /* Translation domain */
    GTK_LOCALEDIR,		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
!   "*"			           /* Languages for which this module is the default */
  };
  
  static const GtkIMContextInfo *info_list[] = {
