diff --git a/inc/html.php b/inc/html.php
index 8c555bbbe53f5d8f1b1d11b534f906454e2e2fa5..72af8f18a07db12c82be6dedee7062a998c21683 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1332,40 +1332,93 @@ function html_debug(){
   print '</body></html>';
 }
 
+/**
+ * List available Administration Tasks
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ * @author HÃ¥kan Sandell <hakan.sandell@home.se>
+ */
 function html_admin(){
-  global $ID;
-  global $INFO;
-  global $lang;
-  global $conf;
-
-  print p_locale_xhtml('admin');
-
-  // build menu of admin functions from the plugins that handle them
-  $pluginlist = plugin_list('admin');
-  $menu = array();
-  foreach ($pluginlist as $p) {
-    if($obj =& plugin_load('admin',$p) === NULL) continue;
-
-    // check permissions
-    if($obj->forAdminOnly() && !$INFO['isadmin']) continue;
-
-    $menu[] = array('plugin' => $p,
-                    'prompt' => $obj->getMenuText($conf['lang']),
-                    'sort' => $obj->getMenuSort()
-                   );
-  }
+    global $ID;
+    global $INFO;
+    global $lang;
+    global $conf;
+    global $auth;
 
-  usort($menu, 'p_sort_modes');
+    // build menu of admin functions from the plugins that handle them
+    $pluginlist = plugin_list('admin');
+    $menu = array();
+    foreach ($pluginlist as $p) {
+        if($obj =& plugin_load('admin',$p) === NULL) continue;
 
-  // output the menu
-  ptln('<ul>');
+        // check permissions
+        if($obj->forAdminOnly() && !$INFO['isadmin']) continue;
 
-  foreach ($menu as $item) {
-    if (!$item['prompt']) continue;
-    ptln('  <li><div class="li"><a href="'.wl($ID, 'do=admin&amp;page='.$item['plugin']).'">'.$item['prompt'].'</a></div></li>');
-  }
+        $menu[$p] = array('plugin' => $p,
+                          'prompt' => $obj->getMenuText($conf['lang']),
+                          'sort' => $obj->getMenuSort()
+                         );
+    }
 
-  ptln('</ul>');
+    print p_locale_xhtml('admin');
+
+    // Admin Tasks
+    if($INFO['isadmin']){
+        ptln('<ul class="admin_tasks">');
+
+        if($auth && $auth->canDo('getUsers')){
+            ptln('  <li class="admin_usermanager"><div class="li">'.
+                    '<a href="'.wl($ID, array('do' => 'admin','page' => 'usermanager')).'">'.
+                    $menu['usermanager']['prompt'].'</a></div></li>');
+        }
+        unset($menu['usermanager']);
+
+        ptln('  <li class="admin_acl"><div class="li">'.
+                '<a href="'.wl($ID, array('do' => 'admin','page' => 'acl')).'">'.
+                $menu['acl']['prompt'].'</a></div></li>');
+        unset($menu['acl']);
+
+        ptln('  <li class="admin_plugin"><div class="li">'.
+                '<a href="'.wl($ID, array('do' => 'admin','page' => 'plugin')).'">'.
+                $menu['plugin']['prompt'].'</a></div></li>');
+        unset($menu['plugin']);
+
+        ptln('  <li class="admin_config"><div class="li">'.
+                '<a href="'.wl($ID, array('do' => 'admin','page' => 'config')).'">'.
+                $menu['config']['prompt'].'</a></div></li>');
+        unset($menu['config']);
+    }
+    ptln('</ul>');
+
+    // Manager Tasks
+    ptln('<ul class="admin_tasks">');
+
+    ptln('  <li class="admin_revert"><div class="li">'.
+            '<a href="'.wl($ID, array('do' => 'admin','page' => 'revert')).'">'.
+            $menu['revert']['prompt'].'</a></div></li>');
+    unset($menu['revert']);
+
+    ptln('  <li class="admin_popularity"><div class="li">'.
+            '<a href="'.wl($ID, array('do' => 'admin','page' => 'popularity')).'">'.
+            $menu['popularity']['prompt'].'</a></div></li>');
+    unset($menu['popularity']);
+
+    ptln('</ul>');
+
+
+    // print the rest as sorted list
+    if(count($menu)){
+        usort($menu, 'p_sort_modes');
+        // output the menu
+        ptln('<div class="clearer"></div>');
+        print p_locale_xhtml('adminplugins');
+        ptln('<ul>');
+        foreach ($menu as $item) {
+            if (!$item['prompt']) continue;
+            ptln('  <li><div class="li"><a href="'.wl($ID, 'do=admin&amp;page='.$item['plugin']).'">'.$item['prompt'].'</a></div></li>');
+        }
+        ptln('</ul>');
+    }
 }
 
 /**
diff --git a/inc/lang/en/adminplugins.txt b/inc/lang/en/adminplugins.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3ec46cf4e4c7598a90e2b082526f7408f3b66112
--- /dev/null
+++ b/inc/lang/en/adminplugins.txt
@@ -0,0 +1,2 @@
+===== Additional Plugins =====
+
diff --git a/lib/images/admin/README b/lib/images/admin/README
new file mode 100644
index 0000000000000000000000000000000000000000..90bab95784b001e0fe0c72c66521e84bdf2ae710
--- /dev/null
+++ b/lib/images/admin/README
@@ -0,0 +1,2 @@
+These icons were taken from the nuvoX KDE icon theme and are GPL licensed
+See http://www.kde-look.org/content/show.php/nuvoX?content=38467
diff --git a/lib/images/admin/acl.png b/lib/images/admin/acl.png
new file mode 100644
index 0000000000000000000000000000000000000000..96fb4cd5643fd43141cf32f776f5b81d596f4d89
Binary files /dev/null and b/lib/images/admin/acl.png differ
diff --git a/lib/images/admin/config.png b/lib/images/admin/config.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4d376d853915ec231b6f95135cb8743478e87f9
Binary files /dev/null and b/lib/images/admin/config.png differ
diff --git a/lib/images/admin/plugin.png b/lib/images/admin/plugin.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2823bac78a00ec97e96bc4817aed6ed1dff37b1
Binary files /dev/null and b/lib/images/admin/plugin.png differ
diff --git a/lib/images/admin/popularity.png b/lib/images/admin/popularity.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e22aaf0def484b2f5013ed715c8d73ea2fe828c
Binary files /dev/null and b/lib/images/admin/popularity.png differ
diff --git a/lib/images/admin/revert.png b/lib/images/admin/revert.png
new file mode 100644
index 0000000000000000000000000000000000000000..002d3a75bfa7ce3f1dc14819c43877fc5e656947
Binary files /dev/null and b/lib/images/admin/revert.png differ
diff --git a/lib/images/admin/usermanager.png b/lib/images/admin/usermanager.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5c8dc6d64e1d03f10f0a9f4352c5a2386bd921c
Binary files /dev/null and b/lib/images/admin/usermanager.png differ
diff --git a/lib/tpl/default/_admin.css b/lib/tpl/default/_admin.css
new file mode 100644
index 0000000000000000000000000000000000000000..9e61547bf31af4902d90570ca82a56e3c2f58838
--- /dev/null
+++ b/lib/tpl/default/_admin.css
@@ -0,0 +1,43 @@
+
+.dokuwiki ul.admin_tasks {
+    font-size: 115%;
+    float: left;
+    width: 40%;
+    list-style-type: none;
+}
+
+.dokuwiki ul.admin_tasks li {
+    line-height: 22px;
+    padding-left: 35px;
+    margin: 1em 0;
+    background: transparent none no-repeat scroll 0 0;
+    text-align: left;
+}
+
+.dokuwiki ul.admin_tasks li div.li{
+    font-weight: bold;
+}
+
+.dokuwiki ul.admin_tasks li.admin_acl {
+    background-image: url(../../images/admin/acl.png);
+}
+
+.dokuwiki ul.admin_tasks li.admin_usermanager {
+    background-image: url(../../images/admin/usermanager.png);
+}
+
+.dokuwiki ul.admin_tasks li.admin_plugin {
+    background-image: url(../../images/admin/plugin.png);
+}
+
+.dokuwiki ul.admin_tasks li.admin_config {
+    background-image: url(../../images/admin/config.png);
+}
+
+.dokuwiki ul.admin_tasks li.admin_revert {
+    background-image: url(../../images/admin/revert.png);
+}
+
+.dokuwiki ul.admin_tasks li.admin_popularity {
+    background-image: url(../../images/admin/popularity.png);
+}
diff --git a/lib/tpl/default/style.ini b/lib/tpl/default/style.ini
index 14ad5c6a1a68a843f2ed345debcced2c2f3a1d58..7631a34b72fc19116ba3d768da2b0560ae2f65ef 100644
--- a/lib/tpl/default/style.ini
+++ b/lib/tpl/default/style.ini
@@ -11,6 +11,7 @@ design.css     = screen
 style.css      = screen
 
 media.css      = screen
+_admin.css     = screen
 
 rtl.css        = rtl
 print.css      = print