diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php
index 61f460414eab05949a795ef8f32228be87ec7881..ad394e11fb0ef4fb315d59c3f5a9084294febef2 100644
--- a/inc/plugincontroller.class.php
+++ b/inc/plugincontroller.class.php
@@ -55,15 +55,23 @@ class Doku_Plugin_Controller {
      *
      * @author Andreas Gohr <andi@splitbrain.org>
      *
-     * @param  $type string     type of plugin to load
-     * @param  $name string     name of the plugin to load
-     * @param  $new  bool       true to return a new instance of the plugin, false to use an already loaded instance
+     * @param  $type     string type of plugin to load
+     * @param  $name     string name of the plugin to load
+     * @param  $new      bool   true to return a new instance of the plugin, false to use an already loaded instance
+     * @param  $disabled bool   true to load even disabled plugins
      * @return objectreference  the plugin object or null on failure
      */
-    function &load($type,$name,$new=false){
+    function &load($type,$name,$new=false,$disabled=false){
         //we keep all loaded plugins available in global scope for reuse
         global $DOKU_PLUGINS;
 
+        list($plugin,$component) = $this->_splitName($name);
+
+        // check if disabled
+        if(!$disabled && $this->isdisabled($plugin)){
+            return null;
+        }
+
         //plugin already loaded?
         if(!empty($DOKU_PLUGINS[$type][$name])){
             if ($new || !$DOKU_PLUGINS[$type][$name]->isSingleton()) {
@@ -75,7 +83,6 @@ class Doku_Plugin_Controller {
         }
 
         //try to load the wanted plugin file
-        list($plugin,$component) = $this->_splitName($name);
         $dir = $this->get_directory($plugin);
         $file = $component ? "$type/$component.php" : "$type.php";
 
diff --git a/inc/pluginutils.php b/inc/pluginutils.php
index da0704bec8bc62c5c1ea3a5c47c5c9804aa7ce3c..85bcaee1e80b09dcfb234b718a65d1503e7a2a95 100644
--- a/inc/pluginutils.php
+++ b/inc/pluginutils.php
@@ -16,9 +16,9 @@ function plugin_list($type='',$all=false) {
     global $plugin_controller;
     return $plugin_controller->getList($type,$all);
 }
-function &plugin_load($type,$name,$new=false) {
+function &plugin_load($type,$name,$new=false,$disabled=false) {
     global $plugin_controller;
-    return $plugin_controller->load($type,$name,$new);
+    return $plugin_controller->load($type,$name,$new,$disabled);
 }
 function plugin_isdisabled($plugin) {
     global $plugin_controller;
diff --git a/lib/plugins/plugin/classes/ap_info.class.php b/lib/plugins/plugin/classes/ap_info.class.php
index fcadb459964c60a65094f8917051f169487b7011..cebbf090a2d916e43830ef85bf5d0f587b0f61e9 100644
--- a/lib/plugins/plugin/classes/ap_info.class.php
+++ b/lib/plugins/plugin/classes/ap_info.class.php
@@ -15,7 +15,7 @@ class ap_info extends ap_manage {
 
 
         foreach ($component_list as $component) {
-            if ($obj = & plugin_load($component['type'],$component['name']) === NULL) continue;
+            if ($obj = & plugin_load($component['type'],$component['name'],false,true) === NULL) continue;
 
             $compname = explode('_',$component['name']);
             if($compname[1]){