diff -ru metacity-2.4.0.orig/src/display.c metacity-2.4.0/src/display.c
--- metacity-2.4.0.orig/src/display.c	2002-08-06 20:25:39.000000000 +0200
+++ metacity-2.4.0/src/display.c	2002-09-04 09:37:34.000000000 +0200
@@ -1079,7 +1079,8 @@
                    * done in frames.c if the click wasn't on
                    * the minimize/close button.
                    */
-                  meta_window_raise (window);
+                  if (meta_prefs_get_raise_on_click())
+                    meta_window_raise (window);
                   
                   meta_topic (META_DEBUG_FOCUS,
                               "Focusing %s due to unmodified button %d press (display.c)\n",
diff -ru metacity-2.4.0.orig/src/metacity.schemas metacity-2.4.0/src/metacity.schemas
--- metacity-2.4.0.orig/src/metacity.schemas	2002-08-06 21:15:20.000000000 +0200
+++ metacity-2.4.0/src/metacity.schemas	2002-09-04 09:29:09.000000000 +0200
@@ -202,6 +202,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>Automatically raises window on mouse click</short>
+         <long>
+          If true, then the clicked window will be automatically raised.
+          Otherwise, windows must be raised explicitly or by by clicking
+          at their frame.
+         </long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/metacity/general/theme</key>
       <applyto>/apps/metacity/general/theme</applyto>
       <owner>metacity</owner>
diff -ru metacity-2.4.0.orig/src/prefs.c metacity-2.4.0/src/prefs.c
--- metacity-2.4.0.orig/src/prefs.c	2002-07-17 04:23:12.000000000 +0200
+++ metacity-2.4.0/src/prefs.c	2002-09-04 09:41:41.000000000 +0200
@@ -33,6 +33,7 @@
 #define KEY_FOCUS_MODE "/apps/metacity/general/focus_mode"
 #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"
@@ -57,6 +58,7 @@
 static gboolean disable_workarounds = FALSE;
 static gboolean auto_raise = FALSE;
 static gboolean auto_raise_delay = 500;
+static gboolean raise_on_click = TRUE;
 #define NUM_COMMANDS 12
 static char *commands[NUM_COMMANDS] = { NULL, NULL, NULL, NULL, NULL, NULL,
                                         NULL, NULL, NULL, NULL, NULL, NULL };
@@ -70,6 +72,7 @@
 static gboolean update_disable_workarounds (gboolean   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_window_binding     (const char *name,
                                            const char *value);
 static gboolean update_screen_binding     (const char *name,
@@ -251,6 +254,12 @@
 				  &err);
   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,
@@ -518,6 +527,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;
@@ -761,6 +786,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;
+}
+
 const char*
 meta_preference_to_string (MetaPreference pref)
 {
@@ -796,6 +831,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";
     }
@@ -1166,6 +1204,12 @@
   return auto_raise_delay;
 }
 
+gboolean
+meta_prefs_get_raise_on_click ()
+{
+  return raise_on_click;
+}
+
 MetaKeyBindingAction
 meta_prefs_get_keybinding_action (const char *name)
 {
diff -ru metacity-2.4.0.orig/src/prefs.h metacity-2.4.0/src/prefs.h
--- metacity-2.4.0.orig/src/prefs.h	2002-07-17 04:23:12.000000000 +0200
+++ metacity-2.4.0/src/prefs.h	2002-09-04 09:33:58.000000000 +0200
@@ -31,6 +31,7 @@
   META_PREF_FOCUS_MODE,
   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,
@@ -61,6 +62,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);
 
