diff -Npur nau-old/libnautilus-extension/nautilus-menu-item.c nau-new/libnautilus-extension/nautilus-menu-item.c
--- nau-old/libnautilus-extension/nautilus-menu-item.c	2009-12-21 21:21:16.873851341 +0800
+++ nau-new/libnautilus-extension/nautilus-menu-item.c	2009-12-21 21:19:27.837092915 +0800
@@ -38,6 +38,7 @@ enum {
 	PROP_TIP,
 	PROP_ICON,
 	PROP_SENSITIVE,
+	PROP_TYPE,
 	PROP_PRIORITY,
 	PROP_MENU,
 	LAST_PROP
@@ -48,6 +49,7 @@ struct _NautilusMenuItemDetails {
 	char *label;
 	char *tip;
 	char *icon;
+	int type;
 	NautilusMenu *menu;
 	gboolean sensitive;
 	gboolean priority;
@@ -141,6 +143,9 @@ nautilus_menu_item_get_property (GObject
 	case PROP_SENSITIVE :
 		g_value_set_boolean (value, item->details->sensitive);
 		break;
+	case PROP_TYPE:
+		g_value_set_int (value, item->details->type);
+		break;
 	case PROP_PRIORITY :
 		g_value_set_boolean (value, item->details->priority);
 		break;
@@ -188,6 +193,10 @@ nautilus_menu_item_set_property (GObject
 		item->details->sensitive = g_value_get_boolean (value);
 		g_object_notify (object, "sensitive");
 		break;
+	case PROP_TYPE :
+		item->details->type = g_value_get_int (value);
+		g_object_notify (object, "type");
+		break;
 	case PROP_PRIORITY :
 		item->details->priority = g_value_get_boolean (value);
 		g_object_notify (object, "priority");
@@ -288,6 +297,16 @@ nautilus_menu_item_class_init (NautilusM
 							       "Whether the menu item is sensitive",
 							       TRUE,
 							       G_PARAM_READWRITE));
+
+	g_object_class_install_property (G_OBJECT_CLASS (class),
+					 PROP_TYPE,
+					 g_param_spec_int     ("type",
+							       "Type",
+							       "The type of the menu item",
+								0,
+								512,
+								0,
+							       G_PARAM_READWRITE));
 	g_object_class_install_property (G_OBJECT_CLASS (class),
 					 PROP_PRIORITY,
 					 g_param_spec_boolean ("priority",
diff -Npur nau-old/src/file-manager/fm-directory-view.c nau-new/src/file-manager/fm-directory-view.c
--- nau-old/src/file-manager/fm-directory-view.c	2009-12-21 21:20:55.701822156 +0800
+++ nau-new/src/file-manager/fm-directory-view.c	2009-12-21 21:19:27.854070080 +0800
@@ -4743,11 +4740,14 @@ add_extension_menu_items (FMDirectoryVie
 		NautilusMenu *menu;
 		GtkAction *action;
 		char *path;
-		
+		int ui_type;
+
 		item = NAUTILUS_MENU_ITEM (l->data);
 		
-		g_object_get (item, "menu", &menu, NULL);
+		g_object_get (item, "menu", &menu, "type", &ui_type, NULL);
 		
+		if (ui_type != GTK_UI_MANAGER_SEPARATOR)
+			ui_type = (menu != NULL) ? GTK_UI_MANAGER_MENU : GTK_UI_MANAGER_MENUITEM;
 		action = add_extension_action_for_files (view, item, files);
 		
 		path = g_build_path ("/", FM_DIRECTORY_VIEW_POPUP_PATH_EXTENSION_ACTIONS, subdirectory, NULL);
@@ -4756,7 +4757,7 @@ add_extension_menu_items (FMDirectoryVie
 				       path,
 				       gtk_action_get_name (action),
 				       gtk_action_get_name (action),
-				       (menu != NULL) ? GTK_UI_MANAGER_MENU : GTK_UI_MANAGER_MENUITEM,
+					ui_type,
 				       FALSE);
 		g_free (path);
 
@@ -4766,7 +4768,7 @@ add_extension_menu_items (FMDirectoryVie
 				       path,
 				       gtk_action_get_name (action),
 				       gtk_action_get_name (action),
-				       (menu != NULL) ? GTK_UI_MANAGER_MENU : GTK_UI_MANAGER_MENUITEM,
+					ui_type,
 				       FALSE);
 		g_free (path);
 
diff -Npur nau-old/src/nautilus-window-menus.c nau-new/src/nautilus-window-menus.c
--- nau-old/src/nautilus-window-menus.c	2009-12-21 21:20:46.110069553 +0800
+++ nau-new/src/nautilus-window-menus.c	2009-12-21 21:19:27.856070056 +0800
@@ -982,11 +982,15 @@ add_extension_menu_items (NautilusWindow
 		NautilusMenu *menu;
 		GtkAction *action;
 		char *path;
-		
+		int ui_type;
+
 		item = NAUTILUS_MENU_ITEM (l->data);
 		
-		g_object_get (item, "menu", &menu, NULL);
+		g_object_get (item, "menu", &menu, "type", &ui_type, NULL);
 		
+		if (ui_type != GTK_UI_MANAGER_SEPARATOR)
+			ui_type = (menu != NULL) ? GTK_UI_MANAGER_MENU : GTK_UI_MANAGER_MENUITEM;
+
 		action = nautilus_action_from_menu_item (item);
 		gtk_action_group_add_action_with_accel (action_group, action, NULL);
 		
@@ -996,7 +1001,7 @@ add_extension_menu_items (NautilusWindow
 				       path,
 				       gtk_action_get_name (action),
 				       gtk_action_get_name (action),
-				       (menu != NULL) ? GTK_UI_MANAGER_MENU : GTK_UI_MANAGER_MENUITEM,
+					ui_type,
 				       FALSE);
 		g_free (path);
 
@@ -1006,7 +1012,7 @@ add_extension_menu_items (NautilusWindow
 				       path,
 				       gtk_action_get_name (action),
 				       gtk_action_get_name (action),
-				       (menu != NULL) ? GTK_UI_MANAGER_MENU : GTK_UI_MANAGER_MENUITEM,
+					ui_type,
 				       FALSE);
 		g_free (path);
 
