Index: /trunk/Phergie/Event/Handler/Quit.php
===================================================================
--- /trunk/Phergie/Event/Handler/Quit.php	(revision 12)
+++ /trunk/Phergie/Event/Handler/Quit.php	(revision 16)
@@ -10,5 +10,5 @@
     public function onPrivmsg(Phergie_Event_Request $event)
     {
-    	if($event->getArgument(1)=='quit' && $this->isAdmin($event)) {
+    	if($event->getArgument(1)=='quit' && $this->isAdmin($event, __CLASS__)) {
     		$this->doQuit('by request of ' . $event->getNick());
     	}
Index: /trunk/Phergie/Event/Handler/AdminCommand.php
===================================================================
--- /trunk/Phergie/Event/Handler/AdminCommand.php	(revision 11)
+++ /trunk/Phergie/Event/Handler/AdminCommand.php	(revision 16)
@@ -28,14 +28,15 @@
 abstract class Phergie_Event_Handler_AdminCommand extends Phergie_Event_Handler
 {
-	protected $_admins = null;
+	protected $_admins = array();
 
-    public function isAdmin(Phergie_Event_Request $event)
+    public function isAdmin(Phergie_Event_Request $event, $__class__ = __CLASS__)
     {
-    	if ($this->_admins === null) {
-    		$this->initialize();
+    	$class = substr($__class__, 22);
+    	if ($this->_admins[$class] === null) {
+    		$this->initialize($class);
     	}
     	$mask = $event->getNick() .'!'. $event->getUsername() .'@'. $event->getHost();
     	// Try to match mask against admin masks
-    	foreach ($this->_admins as $admin) {
+    	foreach ($this->_admins[$class] as $admin) {
     		if (preg_match('{^'.$admin.'$}', $mask)) {
     			return true;
@@ -45,7 +46,10 @@
     }
 
-    protected function initialize()
+    protected function initialize($class)
     {
-    	$admins = explode(',', $this->getIni('AdminCommand.admins'));
+    	$ini = $this->getIni($class.'.admins');
+    	if(empty($ini))
+    		$ini = $this->getIni('AdminCommand.admins');
+    	$admins = explode(',', $ini);
     	$this->_admins = array();
     	foreach ($admins as $admin) {
