Index: apps/recorder/icons.h
===================================================================
--- apps/recorder/icons.h	(revision 12963)
+++ apps/recorder/icons.h	(working copy)
@@ -86,6 +86,7 @@
     Icon_file_view_menu,
     Icon_EQ,
     Icon_Rockbox,
+    Icon_Dictionary,
     Icon6x8Last,
 };
 
Index: apps/recorder/icons.c
===================================================================
--- apps/recorder/icons.c	(revision 12963)
+++ apps/recorder/icons.c	(working copy)
@@ -80,6 +80,7 @@
     { 0x1f, 0x11, 0x7d, 0x46, 0x44, 0x78 }, /* File View Menu */
     { 0x06, 0x7f, 0x06, 0x18, 0x7f, 0x18 }, /* EQ menu */
     { 0x20, 0x70, 0x70, 0x3f, 0x0a, 0x0a }, /* "rockbox" musical note */
+    { 0x01, 0x55, 0x55, 0x55, 0x54 }, /* Dictionary */
 };
 
 const unsigned char bitmap_icons_7x8[][7] =
Index: apps/lang/english.lang
===================================================================
--- apps/lang/english.lang	(revision 12963)
+++ apps/lang/english.lang	(working copy)
@@ -10725,3 +10725,17 @@
     *: ""
   </voice>
 </phrase>
+<phrase>
+  id: LANG_DICTIONARIES
+  desc: in the main menu
+  user:
+  <source>
+    *: "Dictionaries"
+  </source>
+  <dest>
+    *: "Dictionaries"
+  </dest>
+  <voice>
+    *: "Dictionaries"
+  </voice>
+</phrase>
Index: apps/settings.h
===================================================================
--- apps/settings.h	(revision 12963)
+++ apps/settings.h	(working copy)
@@ -62,6 +62,7 @@
 #define EQS_DIR     ROCKBOX_DIR "/eqs"
 #define CODECS_DIR  ROCKBOX_DIR"/codecs"
 #define FMPRESET_PATH ROCKBOX_DIR "/fmpresets"
+#define DICTS_DIR  "/dicts"
 
 #define VIEWERS_CONFIG      ROCKBOX_DIR "/viewers.config"
 #define CONFIGFILE          ROCKBOX_DIR "/config.cfg"
@@ -157,7 +158,8 @@
  *       must be added after NUM_FILTER_MODES. */
 enum { SHOW_ALL, SHOW_SUPPORTED, SHOW_MUSIC, SHOW_PLAYLIST, SHOW_ID3DB,
        NUM_FILTER_MODES,
-       SHOW_WPS, SHOW_RWPS, SHOW_FMR, SHOW_CFG, SHOW_LNG, SHOW_MOD, SHOW_FONT, SHOW_PLUGINS};
+       SHOW_WPS, SHOW_RWPS, SHOW_FMR, SHOW_CFG, SHOW_LNG,
+       SHOW_MOD, SHOW_FONT, SHOW_DICTS, SHOW_PLUGINS};
 
 /* recursive dir insert options */
 enum { RECURSE_OFF, RECURSE_ON, RECURSE_ASK };
Index: apps/filetree.c
===================================================================
--- apps/filetree.c	(revision 12963)
+++ apps/filetree.c	(working copy)
@@ -286,7 +286,8 @@
             ((*c->dirfilter == SHOW_MUSIC &&
              (dptr->attr & TREE_ATTR_MASK) != TREE_ATTR_MPA) &&
              (dptr->attr & TREE_ATTR_MASK) != TREE_ATTR_M3U) ||
-            (*c->dirfilter == SHOW_SUPPORTED && !filetype_supported(dptr->attr)))) ||
+            ((*c->dirfilter == SHOW_SUPPORTED || *c->dirfilter == SHOW_DICTS)
+             && !filetype_supported(dptr->attr)))) ||
             (*c->dirfilter == SHOW_WPS && (dptr->attr & TREE_ATTR_MASK) != TREE_ATTR_WPS) ||
 #ifdef HAVE_REMOTE_LCD
             (*c->dirfilter == SHOW_RWPS && (dptr->attr & TREE_ATTR_MASK) != TREE_ATTR_RWPS) ||
@@ -589,6 +590,7 @@
         else {
             if (*c->dirfilter > NUM_FILTER_MODES &&
                 *c->dirfilter != SHOW_FONT &&
+                *c->dirfilter != SHOW_DICTS &&
                 *c->dirfilter != SHOW_PLUGINS)
             {
                 exit_func = true;
Index: apps/player/icons.h
===================================================================
--- apps/player/icons.h	(revision 12963)
+++ apps/player/icons.h	(working copy)
@@ -41,6 +41,7 @@
     Icon_Playlist,
     Icon_Text,
     Icon_Config,
+    Icon_Dictionary,
 };
 
 /* put icons from the 6x8 enum here if the player
Index: apps/root_menu.c
===================================================================
--- apps/root_menu.c	(revision 12963)
+++ apps/root_menu.c	(working copy)
@@ -169,6 +169,10 @@
             tc->selected_item = last_db_selection;
         break;
 #endif
+        case GO_TO_BROWSEDICTS:
+            filter = SHOW_DICTS;
+            snprintf(folder, MAX_PATH, "%s/", DICTS_DIR);
+        break;
         case GO_TO_BROWSEPLUGINS:
             filter = SHOW_PLUGINS;
             snprintf(folder, MAX_PATH, "%s/", PLUGIN_DIR);
@@ -264,6 +268,7 @@
 #endif
     
     [GO_TO_RECENTBMARKS] =  { load_bmarks, NULL }, 
+    [GO_TO_BROWSEDICTS] = { browser, (void*)GO_TO_BROWSEDICTS }, 
     [GO_TO_BROWSEPLUGINS] = { browser, (void*)GO_TO_BROWSEPLUGINS }, 
     
 };
@@ -292,6 +297,8 @@
 MENUITEM_RETURNVALUE(db_browser, ID2P(LANG_TAGCACHE), GO_TO_DBBROWSER, 
                         NULL, Icon_Audio);
 #endif
+MENUITEM_RETURNVALUE(dicts_browser, ID2P(LANG_DICTIONARIES), GO_TO_BROWSEDICTS, 
+                        NULL, Icon_Dictionary);
 MENUITEM_RETURNVALUE(rocks_browser, ID2P(LANG_PLUGINS), GO_TO_BROWSEPLUGINS, 
                         NULL, Icon_Plugin);
 char *get_wps_item_name(int selected_item, void * data, char *buffer)
@@ -338,7 +345,7 @@
 #if CONFIG_TUNER
             &fm,
 #endif
-            &playlist_options, &rocks_browser,  &info_menu
+            &playlist_options, &dicts_browser, &rocks_browser,  &info_menu
 
 #ifdef HAVE_LCD_CHARCELLS
             ,&do_shutdown_item
Index: apps/root_menu.h
===================================================================
--- apps/root_menu.h	(revision 12963)
+++ apps/root_menu.h	(working copy)
@@ -45,6 +45,7 @@
     /* Do Not add any items above here unless you want it to be able to 
        be the "start screen" after a boot up. The setting in settings_list.c
        will need editing if this is the case. */
+    GO_TO_BROWSEDICTS,
     GO_TO_BROWSEPLUGINS,
 };
 
