Index: apps/filetree.c
===================================================================
--- apps/filetree.c	(revision 12427)
+++ apps/filetree.c	(working copy)
@@ -295,7 +295,9 @@
             (*c->dirfilter == SHOW_LNG && (dptr->attr & TREE_ATTR_MASK) != TREE_ATTR_LNG) ||
             (*c->dirfilter == SHOW_MOD && (dptr->attr & TREE_ATTR_MASK) != TREE_ATTR_MOD) ||
             (*c->dirfilter == SHOW_FONT && (dptr->attr & TREE_ATTR_MASK) != TREE_ATTR_FONT) ||
-            (*c->dirfilter == SHOW_PLUGINS && (dptr->attr & TREE_ATTR_MASK) != TREE_ATTR_ROCK))
+            (*c->dirfilter == SHOW_PLUGINS 
+                && (dptr->attr & TREE_ATTR_MASK) != TREE_ATTR_ROCK)
+                && !(dptr->attr & ATTR_DIRECTORY))
         {
             i--;
             continue;
--- /dev/null	2007-02-18 18:34:14.151968914 +0100
+++ apps/plugins/FOLDERS	2007-02-21 08:52:10.000000000 +0100
@@ -0,0 +1,81 @@
+alpine_cdc,
+battery_bench,tools
+blackjack,games
+bounce,screensavers
+brickmania,games
+bubbles,games
+calculator,tools
+calendar,tools
+chessbox,games
+chessclock,tools
+chip8,
+chopper,games
+clock,tools
+credits,
+cube,screensavers
+demystify,screensavers
+dice,games
+dict,tools
+disktidy,tools
+euroconverter,tools
+fire,screensavers
+fireworks,screensavers
+firmware_flash,tools
+flipit,games
+grayscale,screensavers
+helloworld,screensavers
+invadrox,games
+iriver_flash,tools
+iriverify,tools
+jackpot,games
+jewels,games
+jpeg,
+logo,screensavers
+mandelbrot,games
+mazezam,games
+mem_mon,tools
+metronome,tools
+midi2wav,
+midiplay,
+minesweeper,games
+mosaique,screensaver
+mp3_encoder,tools
+nim,games
+oscilloscope,screensavers
+plasma,screensavers
+pong,games
+properties,
+random_folder_advance_config,tools
+rockblox,games
+rockbox_flash,tools
+rockboy,
+rocklife,games
+rockpaint,tools
+search,tools
+sliding_puzzle,games
+snake2,games
+snake,games
+snow,screensavers
+sokoban,games
+solitaire,games
+sort,tools
+spacerocks,games
+splitedit,tools
+star,games
+starfield,screensavers
+stats,tools
+stopwatch,tools
+test_disk,test
+test_fps,test
+test_sampr,test
+test_scanrate,test
+text_editor,
+vbrfix,tools
+video,
+viewer,
+vu_meter,
+wav2wv,tools
+wavplay,
+wormlet,games
+xobox,games
+zxbox,
Index: tools/buildzip.pl
===================================================================
--- tools/buildzip.pl	(revision 12427)
+++ tools/buildzip.pl	(working copy)
@@ -149,7 +149,7 @@
 
     $c= 'find apps "(" -name "*.rock" -o -name "*.ovl" ")" ! -empty -exec cp {} .rockbox/rocks/ \;';
     print `$c`;
-
+    # handle viewer plugins
     open VIEWERS, "$ROOT/apps/plugins/viewers.config" or
         die "can't open viewers.config";
     @viewers = <VIEWERS>;
@@ -200,6 +200,24 @@
         }
     }
     close VIEWERS;
+    # sort remaining plugins
+    open FOLDERS, "$ROOT/apps/plugins/FOLDERS" or
+        die "can't open FOLDERS file";
+    @pluginfolders = <FOLDERS>;
+    foreach my $line (@pluginfolders) {
+        if($line =~ /([^,]*),([^,]*)(\n$)/) {
+            my ($plugin, $destfolder)=($1, $2);
+            my $r = "${plugin}.rock";
+
+            # print STDERR "[DBG] $plugin $destfolder $r\n";
+            if(! -e ".rockbox/rocks/$destfolder" && -e ".rockbox/rocks/$r") {
+                `mkdir .rockbox/rocks/$destfolder`;
+            }
+            if(-e ".rockbox/rocks/$r" && $destfolder =~ /([^,]+)/) {
+                `mv .rockbox/rocks/$r .rockbox/rocks/$destfolder/`;
+            }
+        }
+    }
     
     `cp $ROOT/apps/tagnavi.config .rockbox/`;
       
