diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php
index dcd72b6110833c0c188a7a74be4b1d7c631f8d0e..1f666660c03061897725387240c7de92e0f6228d 100644
--- a/lib/plugins/acl/admin.php
+++ b/lib/plugins/acl/admin.php
@@ -17,6 +17,15 @@ if(!defined('DOKU_INC')) die();
 class admin_plugin_acl extends DokuWiki_Admin_Plugin {
     var $acl = null;
     var $ns  = null;
+    /** 
+     * The currently selected item, associative array with id and type.
+     * Populated from (in this order):
+     * $_REQUEST['current_ns']
+     * $_REQUEST['current_id']
+     * $ns
+     * $ID
+     */
+    var $current_item = null;
     var $who = '';
     var $usersgroups = array();
     var $specials = array();
@@ -72,6 +81,16 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
             $this->ns = cleanID($_REQUEST['ns']);
         }
 
+        if ($_REQUEST['current_ns']) {
+            $this->current_item = array('id' => cleanID($_REQUEST['current_ns']), 'type' => 'd');
+        } elseif ($_REQUEST['current_id']) {
+            $this->current_item = array('id' => cleanID($_REQUEST['current_id']), 'type' => 'f');
+        } elseif ($this->ns) {
+            $this->current_item = array('id' => $this->ns, 'type' => 'd');
+        } else {
+            $this->current_item = array('id' => $ID, 'type' => 'f');
+        }
+
         // user or group choosen?
         $who = trim($_REQUEST['acl_w']);
         if($_REQUEST['acl_t'] == '__g__' && $who){
@@ -167,7 +186,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
         echo '<div class="level1">'.NL;
 
         echo '<div id="acl__tree">'.NL;
-        $this->_html_explorer($_REQUEST['ns']);
+        $this->_html_explorer();
         echo '</div>'.NL;
 
         echo '<div id="acl__detail">'.NL;
@@ -498,8 +517,8 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
         }
 
         // highlight?
-        if( ($item['type']=='d' && $item['id'] == $this->ns) ||
-            ($item['type']!='d' && $item['id'] == $ID)) $cl = ' cur';
+        if( ($item['type']== $this->current_item['type'] && $item['id'] == $this->current_item['id'])) 
+            $cl = ' cur';
 
         // namespace or page?
         if($item['type']=='d'){
diff --git a/lib/plugins/acl/script.js b/lib/plugins/acl/script.js
index 449a3c16a5ded6c5e2097df8cbda2d49a7b59ff7..d5d0371a9bbcb381ae7201bd8b0f2f1e41d55c28 100644
--- a/lib/plugins/acl/script.js
+++ b/lib/plugins/acl/script.js
@@ -118,7 +118,11 @@ acl = {
         var ul = document.createElement('ul');
         listitem.appendChild(ul);
         ajax.elementObj = ul;
-        ajax.runAJAX(link.search.substr(1)+'&ajax=tree');
+        ajax.setVar('ajax', 'tree');
+        var frm = $('acl__detail').getElementsByTagName('form')[0];
+        ajax.setVar('current_ns', encodeURIComponent(frm.elements['ns'].value));
+        ajax.setVar('current_id', encodeURIComponent(frm.elements['id'].value));
+        ajax.runAJAX(link.search.substr(1));
         clicky.src = DOKU_BASE+'lib/images/minus.gif';
         return false;
     },