diff -rau metacity-2.6.5/src/display.c metacity-2.6.5-raise/src/display.c
--- metacity-2.6.5/src/display.c	2004-02-15 11:38:22.000000000 -0800
+++ metacity-2.6.5-raise/src/display.c	2004-03-16 00:01:44.000000000 -0800
@@ -1340,7 +1340,7 @@
                    * in click to focus mode? The debate rages.
                    * Feel free to change TRUE to FALSE or vice versa
                    */
-                  if (TRUE /* meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK */) 
+                  if (meta_prefs_get_raise_on_click())
                     {
                       meta_window_raise (window);
                       
diff -rau metacity-2.6.5/src/prefs.c metacity-2.6.5-raise/src/prefs.c
--- metacity-2.6.5/src/prefs.c	2003-06-27 07:49:56.000000000 -0700
+++ metacity-2.6.5-raise/src/prefs.c	2004-03-16 00:06:46.000000000 -0800
@@ -44,6 +44,7 @@
 #define KEY_ACTION_DOUBLE_CLICK_TITLEBAR "/apps/metacity/general/action_double_click_titlebar"
 #define KEY_AUTO_RAISE "/apps/metacity/general/auto_raise"
 #define KEY_AUTO_RAISE_DELAY "/apps/metacity/general/auto_raise_delay"
+#define KEY_RAISE_ON_CLICK "/apps/metacity/general/raise_on_click"
 #define KEY_THEME "/apps/metacity/general/theme"
 #define KEY_USE_SYSTEM_FONT  "/apps/metacity/general/titlebar_uses_system_font"
 #define KEY_TITLEBAR_FONT "/apps/metacity/general/titlebar_font"
@@ -81,6 +82,7 @@
 static gboolean disable_workarounds = FALSE;
 static gboolean auto_raise = FALSE;
 static gboolean auto_raise_delay = 500;
+static gboolean raise_on_click = TRUE;
 static gboolean provide_visual_bell = TRUE;
 static gboolean bell_is_audible = TRUE;
 static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_INVALID;
@@ -118,6 +120,7 @@
 static gboolean update_action_double_click_titlebar (const char *value);
 static gboolean update_auto_raise          (gboolean   value);
 static gboolean update_auto_raise_delay    (int        value);
+static gboolean update_raise_on_click     (gboolean    value);
 static gboolean update_button_layout      (const char *value);
 static gboolean update_window_binding     (const char *name,
                                            const char *value);
@@ -329,6 +332,10 @@
   cleanup_error (&err);
   update_auto_raise_delay (int_val);
   
+  bool_val = gconf_client_get_bool (default_client, KEY_RAISE_ON_CLICK,
+				    &err);
+  cleanup_error (&err);
+  update_raise_on_click (bool_val);
 
   str_val = gconf_client_get_string (default_client, KEY_THEME,
                                      &err);
@@ -654,6 +661,22 @@
         queue_changed (META_PREF_AUTO_RAISE_DELAY);
     
     }
+  else if (strcmp (key, KEY_RAISE_ON_CLICK) == 0)
+    {
+      gboolean b;
+
+      if (value && value->type != GCONF_VALUE_BOOL)
+        {
+          meta_warning (_("GConf key \"%s\" is set to an invalid type\n"),
+                        KEY_RAISE_ON_CLICK);
+          goto out;
+        }
+
+      b = value ? gconf_value_get_bool (value) : raise_on_click;
+
+      if (update_raise_on_click (b))
+        queue_changed (META_PREF_RAISE_ON_CLICK);
+    }
   else if (str_has_prefix (key, KEY_COMMAND_PREFIX))
     {
       const char *str;
@@ -1239,6 +1262,16 @@
 
   return old != auto_raise_delay;
 }
+
+static gboolean
+update_raise_on_click (gboolean value)
+{
+  gboolean old = raise_on_click;
+
+  raise_on_click = value;
+
+  return old != raise_on_click;
+}
 #endif /* HAVE_GCONF */
 
 #ifdef WITH_VERBOSE_MODE
@@ -1283,6 +1316,9 @@
     case META_PREF_AUTO_RAISE_DELAY:
       return "AUTO_RAISE_DELAY";
 
+    case META_PREF_RAISE_ON_CLICK:
+      return "RAISE_ON_CLICK";
+
     case META_PREF_COMMANDS:
       return "COMMANDS";
 
@@ -1974,6 +2010,12 @@
   return auto_raise_delay;
 }
 
+gboolean
+meta_prefs_get_raise_on_click (void)
+{
+  return raise_on_click;
+}
+
 MetaKeyBindingAction
 meta_prefs_get_keybinding_action (const char *name)
 {
diff -rau metacity-2.6.5/src/prefs.h metacity-2.6.5-raise/src/prefs.h
--- metacity-2.6.5/src/prefs.h	2003-06-27 07:49:56.000000000 -0700
+++ metacity-2.6.5-raise/src/prefs.h	2004-03-16 00:08:33.000000000 -0800
@@ -33,6 +33,7 @@
   META_PREF_ACTION_DOUBLE_CLICK_TITLEBAR,
   META_PREF_AUTO_RAISE,
   META_PREF_AUTO_RAISE_DELAY,
+  META_PREF_RAISE_ON_CLICK,
   META_PREF_THEME,
   META_PREF_TITLEBAR_FONT,
   META_PREF_NUM_WORKSPACES,
@@ -69,6 +70,7 @@
 gboolean                    meta_prefs_get_disable_workarounds (void);
 gboolean                    meta_prefs_get_auto_raise         (void);
 int                         meta_prefs_get_auto_raise_delay   (void);
+gboolean                    meta_prefs_get_raise_on_click     (void);
 
 const char*                 meta_prefs_get_command            (int i);
 
diff -rau metacity-2.6.5/src/metacity.schemas.in metacity-2.6.5-raise/src/metacity.schemas.in
--- metacity-2.6.5/src/metacity.schemas.in	2004-03-16 00:19:51.000000000 -0800
+++ metacity-2.6.5-raise/src/metacity.schemas.in	2004-03-16 00:39:08.000000000 -0800
@@ -110,6 +110,22 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/metacity/general/raise_on_click</key>
+      <applyto>/apps/metacity/general/raise_on_click</applyto>
+      <owner>metacity</owner>
+      <type>bool</type>
+      <default>true</default>
+      <locale name="C">
+         <short>Raise windows when a mouse button is pressed on them</short>
+         <long>
+           If true, pressing a mouse button on a window will cause it
+           to be raised to the top of the stack.  If false, windows
+           must be raised explicitly by clicking on their title bar.
+         </long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/metacity/general/theme</key>
       <applyto>/apps/metacity/general/theme</applyto>
       <owner>metacity</owner>
