diff --git a/apps/filetypes.c b/apps/filetypes.c
index a6ccff3..89933c8 100644
--- a/apps/filetypes.c
+++ b/apps/filetypes.c
@@ -39,6 +39,7 @@
 #include "splash.h"
 #include "buffer.h"
 #include "icons.h"
+#include "logf.h"
 
 /* max filetypes (plugins & icons stored here) */
 #if CONFIG_CODEC == SWCODEC
@@ -160,7 +161,12 @@
     {
         if (!settings_parseline(buffer, &ext, &color))
             continue;
-        for (i=0; i<filetype_count; i++)
+        if (!strcasecmp(ext, "folder"))
+        {
+            custom_colors[0] = hex_to_rgb(color);
+            continue;
+        }
+        for (i=1; i<filetype_count; i++)
         {
             if (filetypes[i].extension &&
                 !strcasecmp(ext, filetypes[i].extension))
@@ -369,12 +375,23 @@
 }
 
 #ifdef HAVE_LCD_COLOR
-int filetype_get_color(int attr)
+int filetype_get_color(const char * name, int attr)
 {
-    int index = find_attr(attr);
-    if (index < 0)
+    char *extension;
+    int i;
+    if ((attr & ATTR_DIRECTORY)==ATTR_DIRECTORY)
+        return custom_colors[0];
+    extension = strrchr(name, '.');
+    if (!extension)
         return -1;
-    return custom_colors[index];
+    extension++;
+    logf("%s %s",name,extension);
+    for (i=1; i<filetype_count; i++)
+    {
+        if (filetypes[i].extension && 
+            !strcasecmp(extension, filetypes[i].extension))
+            return custom_colors[i];
+    }
     return -1;
 }
 #endif
diff --git a/apps/filetypes.h b/apps/filetypes.h
index 13f4e56..52e60ea 100644
--- a/apps/filetypes.h
+++ b/apps/filetypes.h
@@ -60,7 +60,7 @@
 /* Return the attribute (FILE_ATTR_*) of the file */
 int filetype_get_attr(const char* file);
 #ifdef HAVE_LCD_COLOR
-int filetype_get_color(int attr);
+int filetype_get_color(const char * name, int attr);
 #endif
 int filetype_get_icon(int attr);
 /* return the plugin filename associated with the file */
diff --git a/apps/tree.c b/apps/tree.c
index a790400..d0fe47f 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -171,7 +171,7 @@
     struct tree_context * local_tc=(struct tree_context *)data;
     struct entry* dc = local_tc->dircache;
     struct entry* e = &dc[selected_item];
-    return filetype_get_color(e->attr);
+    return filetype_get_color(e->name, e->attr);
 }
 #endif
 
diff --git a/docs/sample.colors b/docs/sample.colors
index 2f90dee..930a34e 100644
--- a/docs/sample.colors
+++ b/docs/sample.colors
@@ -1,4 +1,7 @@
-mp3:904010
-ogg:D04040
-txt:FF0000
-cfg:00FF00
+folder:808080
+ipod:00B0B0
+mp3:00FF00
+flac:00FF00
+ogg:00FF00
+txt:FF0000
+cfg:D00000
