--- /dev/null
+diff -urN aa/desktop-file-utils-0.8/src/menu-entries.c desktop-file-utils-0.8/src/menu-entries.c
+--- aa/desktop-file-utils-0.8/src/menu-entries.c 2004-09-07 18:34:42.398864448 +0200
++++ desktop-file-utils-0.8/src/menu-entries.c 2004-09-07 18:37:29.455467984 +0200
+@@ -2035,6 +2035,7 @@
+ GError *err;
+ char *nodisplay_str;
+ char *onlyshowin;
++ char *notshowin;
+ gboolean nodisplay;
+
+ str = NULL;
+@@ -2089,6 +2090,33 @@
+ g_free (onlyshowin);
+ }
+ }
++
++ if (cache->only_show_in_name && nodisplay == FALSE)
++ {
++ notshowin = find_value (str, "NotShowIn");
++
++ if (notshowin != NULL)
++ {
++ char **split;
++ int i;
++
++ split = string_list_from_desktop_value (notshowin);
++ i = 0;
++ while (split[i] != NULL)
++ {
++ if (strcmp (split[i], cache->only_show_in_name) == 0)
++ {
++ nodisplay = TRUE;
++ break;
++ }
++
++ ++i;
++ }
++
++ g_strfreev (split);
++ g_free (notshowin);
++ }
++ }
+
+ return entry_new (ENTRY_DIRECTORY, basename, filename, nodisplay);
+ }