--- gnome-session-2.15.90/gnome-session/gnome-session.schemas.in.window-manager	2005-04-26 06:56:50.000000000 -0400
+++ gnome-session-2.15.90/gnome-session/gnome-session.schemas.in	2006-08-10 19:19:11.000000000 -0400
@@ -2,11 +2,22 @@
 <gconfschemafile>
    <schemalist>
       <schema>
+         <key>/schemas/apps/gnome-session/rh/window_manager</key>
+         <applyto>/apps/gnome-session/rh/window_manager</applyto>
+         <owner>gnome</owner>
+         <type>string</type>
+         <default>metacity</default>
+         <locale name="C">
+	    <short>Window Manager to start</short>
+	    <long>The Window manager that gnome-session will start. Valid values are "metacity" and "compiz".</long>
+         </locale>
+      </schema>
+      <schema>
          <key>/schemas/apps/gnome-session/options/show_splash_screen</key>
          <applyto>/apps/gnome-session/options/show_splash_screen</applyto>
          <owner>gnome</owner>
          <type>bool</type>
-         <default>true</default>
+         <default>false</default>
          <locale name="C">
             <short>Show the splash screen</short>
             <long>Show the splash screen when the session starts up</long>
--- gnome-session-2.15.90/gnome-session/gnome-wm.window-manager	2005-07-19 08:44:48.000000000 -0400
+++ gnome-session-2.15.90/gnome-session/gnome-wm	2006-08-11 16:04:59.000000000 -0400
@@ -3,7 +3,9 @@
 # The user can specify his prefered WM by setting the WINDOW_MANAGER
 # environment variable.
 #
-# If this is not set, we search a list of known windowmanagers and use
+# If this is not set, we check the /apps/gnome-session/rh/window_manager key
+# and go off that.  finally, if all else fails we search a list of known 
+# windowmanagers and use
 # the first one that is found in the users's PATH
 #
 
@@ -39,6 +41,10 @@ done
 
 # WINDOW_MANAGER overrides all
 
+if [ -z "$WINDOW_MANAGER" ] ; then
+	WINDOW_MANAGER=$(gconftool-2 --get /apps/gnome-session/rh/window_manager)
+fi
+
 OLDIFS=$IFS
 IFS=":"
 if [ -z "$WINDOW_MANAGER" ] ; then
@@ -67,11 +73,18 @@ fi
 # Now create options OPT1 and OPT2 based on the windowmanager used
 OPT1=
 OPT2=
+OPT3=
 if [ ! -z "$SMID" ] ; then
   case `basename $WINDOW_MANAGER` in
     sawfish|sawmill|metacity)
       OPT1=--sm-client-id=$SMID
       ;;
+    compiz)
+      gnome-window-decorator &
+      OPT1=--sm-client-id
+      OPT2=$SMID
+      OPT3=gconf
+      ;;
     openbox)
       OPT1=--sm-client-id
       OPT2=$SMID
@@ -88,6 +100,6 @@ if [ ! -z "$SMID" ] ; then
   esac
 fi
 
-exec $WINDOW_MANAGER $OPT1 $OPT2
+exec $WINDOW_MANAGER $OPT1 $OPT2 $OPT3
 
 echo "ERROR: No window manager could run!"
