Index: /trunk/dns.cgi
===================================================================
--- /trunk/dns.cgi	(revision 640)
+++ /trunk/dns.cgi	(revision 641)
@@ -97,5 +97,5 @@
 	or die CGI::Session->errstr();
 
-if (!$sid || $session->is_expired) {
+if (!$sid || $session->is_expired || !$session->param('uid') || !$dnsdb->userStatus($session->param('uid')) ) {
   $webvar{page} = 'login';
 } else {
@@ -1234,4 +1234,7 @@
 	($permissions{self_edit} && $webvar{id} == $session->param('uid')) )) {
       my $stat = $dnsdb->userStatus($webvar{id}, $webvar{userstatus});
+      # kick user out if user disabled self
+      # arguably there should be a more specific error message for this case
+      changepage(page=> 'login', sessexpired => 1) if $webvar{id} == $session->param('uid');
       $page->param(resultmsg => $DNSDB::resultstr);
     } else {
