diff --git a/legacy/ecore/src/lib/ecore_desktop/Ecore_Desktop.h b/legacy/ecore/src/lib/ecore_desktop/Ecore_Desktop.h
index 3f7d1a7388..b73658ce51 100644
--- a/legacy/ecore/src/lib/ecore_desktop/Ecore_Desktop.h
+++ b/legacy/ecore/src/lib/ecore_desktop/Ecore_Desktop.h
@@ -225,7 +225,7 @@ extern "C"
EAPI void
ecore_desktop_menu_for_each(void (*func)
- (char *name, char *path, Ecore_Hash * apps));
+ (char *name, char *path, char *directory, Ecore_Hash * apps));
Ecore_Desktop_Tree *ecore_desktop_menu_get(char *file);
Ecore_Desktop_Tree *ecore_desktop_tree_new(char *buffer);
diff --git a/legacy/ecore/src/lib/ecore_desktop/ecore_desktop_menu.c b/legacy/ecore/src/lib/ecore_desktop/ecore_desktop_menu.c
index 1de38b6972..91b1559e8a 100644
--- a/legacy/ecore/src/lib/ecore_desktop/ecore_desktop_menu.c
+++ b/legacy/ecore/src/lib/ecore_desktop/ecore_desktop_menu.c
@@ -119,7 +119,7 @@ static int _ecore_desktop_menu_apply_rules(struct
EAPI void
ecore_desktop_menu_for_each(void (*func)
- (char *name, char *path, Ecore_Hash * apps))
+ (char *name, char *path, char *directory, Ecore_Hash * apps))
{
char *menu_file;
@@ -162,24 +162,48 @@ _ecore_desktop_menu_make_apps(const void *data, Ecore_Desktop_Tree * tree,
{
if (strncmp((char *)tree->elements[element].element, "