Index: shell/control-center.c
===================================================================
--- shell/control-center.c	(revision 7211)
+++ shell/control-center.c	(working copy)
@@ -151,7 +151,7 @@
 		exit (1);
 	}
 
-	app_data = appshelldata_new ("preferences.menu", NULL, CONTROL_CENTER_PREFIX,
+	app_data = appshelldata_new ("gnomecc.menu", NULL, CONTROL_CENTER_PREFIX,
 		GTK_ICON_SIZE_DIALOG, FALSE, TRUE);
 	generate_categories (app_data);
 
Index: shell/gnomecc.directory.in
===================================================================
--- shell/gnomecc.directory.in	(revision 0)
+++ shell/gnomecc.directory.in	(revision 0)
@@ -0,0 +1,5 @@
+[Desktop Entry]
+_Name=Control Center
+Icon=gnome-settings
+Type=Directory
+Encoding=UTF-8
Index: shell/Makefile.am
===================================================================
--- shell/Makefile.am	(revision 7211)
+++ shell/Makefile.am	(working copy)
@@ -19,6 +19,11 @@
 sys_DATA = $(sys_in_files:.desktop.in=.desktop)
 @INTLTOOL_DESKTOP_RULE@
 
+directorydir = $(datadir)/desktop-directories
+directory_in_files = gnomecc.directory.in
+directory_DATA = $(directory_in_files:.directory.in=.directory)
+@INTLTOOL_DIRECTORY_RULE@
+
 schemasdir   = @GCONF_SCHEMA_FILE_DIR@
 schemas_DATA = control-center.schemas
 @INTLTOOL_SCHEMAS_RULE@
@@ -32,6 +37,9 @@
 	fi
 endif
 
-EXTRA_DIST = gnomecc.desktop.in.in $(schemas_DATA).in
+menudir = $(sysconfdir)/xdg/menus
+menu_DATA = gnomecc.menu
 
-DISTCLEANFILES = gnomecc.desktop gnomecc.desktop.in $(schemas_DATA)
+EXTRA_DIST = gnomecc.desktop.in.in gnomecc.directory.in gnomecc.menu $(schemas_DATA).in
+
+DISTCLEANFILES = gnomecc.desktop gnomecc.desktop.in gnomecc.directory $(schemas_DATA)
Index: shell/gnomecc.menu
===================================================================
--- shell/gnomecc.menu	(revision 0)
+++ shell/gnomecc.menu	(revision 0)
@@ -0,0 +1,120 @@
+<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+  <Name>Control Center</Name>
+  <Directory>gnomecc.directory</Directory>
+
+  <!-- Read standard .directory and .desktop file locations -->
+  <DefaultAppDirs/>
+  <DefaultDirectoryDirs/>
+
+  <!-- Read in overrides and child menus from gnomecc-merged/ -->
+  <DefaultMergeDirs/>
+
+   <!-- Sort the control center categories -->
+   <Layout>
+     <Menuname>Personal</Menuname>
+     <Menuname>Look and Feel</Menuname>
+     <Menuname>Internet and Network</Menuname>
+     <Menuname>Hardware</Menuname>
+     <Menuname>System</Menuname>
+     <Merge type="all" />
+   </Layout>
+
+  <!-- Stuff in the toplevel (Other category) -->
+  <Include>
+    <And>
+      <Category>Settings</Category>
+      <Not>
+        <Or>
+          <Category>X-GNOME-PersonalSettings</Category>
+          <Category>DesktopSettings</Category>
+          <Category>X-GNOME-NetworkSettings</Category>
+          <Category>HardwareSettings</Category>
+          <Category>X-GNOME-SystemSettings</Category>
+          <Category>System</Category>
+        </Or>
+      </Not>
+    </And>
+  </Include>
+
+  <!-- Menu items to exclude from the toplevel -->
+  <Exclude>
+    <Filename>gnomecc.desktop</Filename>
+  </Exclude>
+
+  <!-- Personal category -->
+  <Menu>
+    <Name>Personal</Name>
+    <Directory>Personal.directory</Directory>
+    <Include>
+      <And>
+        <Category>Settings</Category>
+        <Category>X-GNOME-PersonalSettings</Category>
+      </And>
+    </Include>
+  </Menu> <!-- End Personal -->
+
+  <!-- Look and Feel category -->
+  <Menu>
+    <Name>Look and Feel</Name>
+    <Directory>LookAndFeel.directory</Directory>
+    <Include>
+      <And>
+        <Category>Settings</Category>
+        <Category>DesktopSettings</Category>
+      </And>
+    </Include>
+  </Menu> <!-- End Look and Feel -->
+
+  <!-- Internet and Network category -->
+  <Menu>
+    <Name>Internet and Network</Name>
+    <Directory>InternetAndNetwork.directory</Directory>
+    <Include>
+      <And>
+        <Category>Settings</Category>
+        <Category>X-GNOME-NetworkSettings</Category>
+      </And>
+    </Include>
+  </Menu> <!-- End Internet and Network -->
+  
+  <!-- Hardware category -->
+  <Menu>
+    <Name>Hardware</Name>
+    <Directory>Hardware.directory</Directory>
+    <Include>
+      <And>
+        <Category>Settings</Category>
+        <Category>HardwareSettings</Category>
+      </And>
+    </Include>
+  </Menu> <!-- End Hardware -->
+
+  <!-- System category -->
+  <Menu>
+    <Name>System</Name>
+    <Directory>System.directory</Directory>
+    <Include>
+      <And>
+        <Category>Settings</Category>
+        <Or>
+          <Category>X-GNOME-SystemSettings</Category>
+          <And>
+            <Category>System</Category>
+            <Not>
+              <Or>
+                <Category>X-GNOME-PersonalSettings</Category>
+                <Category>DesktopSettings</Category>
+                <Category>HardwareSettings</Category>
+                <Category>X-GNOME-NetworkSettings</Category> 
+              </Or>
+            </Not>
+          </And>
+        </Or>
+      </And>
+    </Include>
+  </Menu> <!-- End System -->
+
+</Menu>     <!-- End CC -->
Index: po/POTFILES.in
===================================================================
--- po/POTFILES.in	(revision 7211)
+++ po/POTFILES.in	(working copy)
@@ -98,6 +98,7 @@
 shell/control-center.c
 shell/control-center.schemas.in
 shell/gnomecc.desktop.in.in
+shell/gnomecc.directory.in
 typing-break/drw-break-window.c
 typing-break/drwright.c
 typing-break/main.c
