Index: b/gdk-pixbuf/gdk-pixbuf-io.c
===================================================================
--- a/gdk-pixbuf/gdk-pixbuf-io.c	2010-04-10 14:52:10.685945884 +0200
+++ b/gdk-pixbuf/gdk-pixbuf-io.c	2010-04-10 14:52:10.997945392 +0200
@@ -308,8 +308,20 @@
   gchar *result = g_strdup (g_getenv ("GDK_PIXBUF_MODULE_FILE"));
 
   if (!result)
-	  result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gdk-pixbuf.loaders", NULL);
-
+    {
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+# if defined (__i386__)
+      result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gdk-pixbuf.loaders.32", NULL);
+# else
+      result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gdk-pixbuf.loaders.64", NULL);
+#endif
+      /* Prefer compat gdk-pixbuf.loaders file if it's usable. */
+      if (g_file_test(result, G_FILE_TEST_EXISTS))
+        return result;
+      g_free (result);
+#endif
+      result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gdk-pixbuf.loaders", NULL);
+    }
   return result;
 }
 
Index: b/gtk/gtkrc.c
===================================================================
--- a/gtk/gtkrc.c	2010-04-10 14:52:03.789945438 +0200
+++ b/gtk/gtkrc.c	2010-04-10 14:52:11.025941140 +0200
@@ -450,7 +450,20 @@
       if (im_module_file)
 	result = g_strdup (im_module_file);
       else
-	result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules", NULL);
+        {
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+# if defined (__i386__)
+         result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules.32", NULL);
+# else
+         result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules.64", NULL);
+# endif
+          /* Prefer compat gtk.immodules file if it's usable. */
+          if (g_file_test(result, G_FILE_TEST_EXISTS))
+            return result;
+          g_free (result);
+#endif
+          result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules", NULL);
+        }
     }
 
   return result;
@@ -522,7 +535,21 @@
   else
     {
       const gchar *home;
-      str = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtkrc", NULL);
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+# if defined (__i386__)
+      str = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtkrc.32", NULL);
+# else
+      str = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtkrc.64", NULL);
+# endif
+      /* Prefer compat gtkrc if it's usable. */
+      if (!g_file_test(str, G_FILE_TEST_EXISTS))
+        {
+          g_free (str), /* continue in next line */
+#endif
+          str = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtkrc", NULL);
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+        }
+#endif
 
       gtk_rc_add_default_file (str);
       g_free (str);
@@ -530,7 +557,21 @@
       home = g_get_home_dir ();
       if (home)
 	{
-	  str = g_build_filename (home, ".gtkrc-2.0", NULL);
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+# if defined (__i386__)
+          str = g_build_filename (home, ".gtkrc-2.0.32", NULL);
+# else
+          str = g_build_filename (home, ".gtkrc-2.0.64", NULL);
+# endif
+          /* Prefer compat .gtkrc-2.0 if it's usable. */
+          if (!g_file_test(str, G_FILE_TEST_EXISTS))
+            {
+              g_free (str), /* continue in next line */
+#endif
+              str = g_build_filename (home, ".gtkrc-2.0", NULL);
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+            }
+#endif
 	  gtk_rc_add_default_file (str);
 	  g_free (str);
 	}
