diff --git a/inc/actions.php b/inc/actions.php
index fc68ef1736549bd87162d03f936e76c2913f3057..441a85d3c47dd513bcd9609dd575a750754bdc68 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -64,8 +64,6 @@ function act_dispatch(){
 		if($_REQUEST['page'] == 'acl'){
 			require_once(DOKU_INC.'inc/admin_acl.php');
 			admin_acl_handler();
-		} elseif ($_REQUEST['page'] == 'register') {
-      $ACT = 'register';
     }
   }
 
@@ -85,7 +83,6 @@ function act_dispatch(){
  */
 function act_clean($act){
   global $lang;
-  global $conf;
 
   //handle localized buttons
   if($act == $lang['btn_save']) $act = 'save';
@@ -96,9 +93,6 @@ function act_clean($act){
   $act = strtolower($act);
   $act = preg_replace('/[^a-z_]+/','',$act);
 
-  if($act == 'register' && !$conf['openregister'])
-    return 'show';
-
   if($act == 'export_html') $act = 'export_xhtml';
 
   if(array_search($act,array('login','logout','register','save','edit',
@@ -118,6 +112,7 @@ function act_clean($act){
  */
 function act_permcheck($act){
   global $INFO;
+  global $conf;
 
   if(in_array($act,array('save','preview','edit'))){
     if($INFO['exists']){
@@ -125,8 +120,13 @@ function act_permcheck($act){
     }else{
       $permneed = AUTH_CREATE;
     }
-  }elseif(in_array($act,array('login','register','search','recent'))){
+  }elseif(in_array($act,array('login','search','recent'))){
     $permneed = AUTH_NONE;
+  }elseif($act == 'register'){
+    if ($conf['openregister'])
+      $permneed = AUTH_NONE;
+    else
+      $permneed = AUTH_AUTH;
   }elseif($act == 'admin'){
     $permneed = AUTH_ADMIN;
   }else{
diff --git a/inc/html.php b/inc/html.php
index cb076b76d7f4d3755b597eedd72c34489b201a7a..e6cf77ab0bfd66eced92ec38cd9f0b5375284583 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -994,7 +994,7 @@ function html_admin(){
   // currently ACL only - more to come
   ptln('<li><a href="'.wl($ID,'do=admin&amp;page=acl').'">'.$lang['admin_acl'].'</a></li>');
   if (!$conf['openregister']){
-    ptln('<li><a href="'.wl($ID,'do=admin&amp;page=register').'">'.$lang['admin_register'].'</a></li>');
+    ptln('<li><a href="'.wl($ID,'do=register').'">'.$lang['admin_register'].'</a></li>');
   }
   
   ptln('</ul>');