diff --git a/inc/init.php b/inc/init.php
index 3cff40073343a4d654842ece70217b12fc8c625a..7f4792cfa2a3dff19ffc6c77d14052888b2cd2f6 100644
--- a/inc/init.php
+++ b/inc/init.php
@@ -20,6 +20,9 @@ if (@file_exists($preload)) include($preload);
 // define the include path
 if(!defined('DOKU_INC')) define('DOKU_INC',fullpath(dirname(__FILE__).'/../').'/');
 
+// define Plugin dir
+if(!defined('DOKU_PLUGIN'))  define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
+
 // define config path (packagers may want to change this to /etc/dokuwiki/)
 if(!defined('DOKU_CONF')) define('DOKU_CONF',DOKU_INC.'conf/');
 
@@ -158,8 +161,6 @@ if(!defined('DOKU_TAB')) define ('DOKU_TAB',"\t");
 // define cookie and session id, append server port when securecookie is configured FS#1664
 if (!defined('DOKU_COOKIE')) define('DOKU_COOKIE', 'DW'.md5(DOKU_REL.(($conf['securecookie'])?$_SERVER['SERVER_PORT']:'')));
 
-// define Plugin dir
-if(!defined('DOKU_PLUGIN'))  define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
 
 // define main script
 if(!defined('DOKU_SCRIPT')) define('DOKU_SCRIPT','doku.php');
diff --git a/inc/load.php b/inc/load.php
index 792f05e2798796072d2feb6f3a25861cfefefa66..e06a2c63dfeeb68f70a00fdd454af28ccd22489e 100644
--- a/inc/load.php
+++ b/inc/load.php
@@ -76,6 +76,11 @@ function load_autoload($name){
         'GeSHi'                 => DOKU_INC.'inc/geshi.php',
         'TarLib'                => DOKU_INC.'inc/TarLib.class.php',
         'ZibLib'                => DOKU_INC.'inc/ZipLib.class.php',
+
+        'DokuWiki_Action_Plugin' => DOKU_PLUGIN.'action.php',
+        'DokuWiki_Admin_Plugin'  => DOKU_PLUGIN.'admin.php',
+        'DokuWiki_Syntax_Plugin' => DOKU_PLUGIN.'syntax.php',
+
     );
 
     if(isset($classes[$name])){
diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php
index a7037047afe740271172c36c4b595b17b03f09ea..b38d2ac6eddf8a308d7938eba35a6625df22185b 100644
--- a/lib/plugins/acl/admin.php
+++ b/lib/plugins/acl/admin.php
@@ -10,9 +10,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
-
 /**
  * All DokuWiki plugins to extend the admin function
  * need to inherit from this class
@@ -216,7 +213,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
      * @author Andreas Gohr <andi@splitbrain.org>
      */
     function _html_explorer(){
-        require_once(DOKU_INC.'inc/search.php');
         global $conf;
         global $ID;
         global $lang;
diff --git a/lib/plugins/acl/ajax.php b/lib/plugins/acl/ajax.php
index d3e88d932edb4429c06aec20b0f1f4512c8be6a6..d91586a5dac65b088544ff733ce7b33023664c20 100644
--- a/lib/plugins/acl/ajax.php
+++ b/lib/plugins/acl/ajax.php
@@ -13,9 +13,6 @@ if(!count($_POST) && $HTTP_RAW_POST_DATA){
 
 if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../../');
 require_once(DOKU_INC.'inc/init.php');
-require_once(DOKU_INC.'inc/common.php');
-require_once(DOKU_INC.'inc/pageutils.php');
-require_once(DOKU_INC.'inc/auth.php');
 //close session
 session_write_close();
 
@@ -24,8 +21,6 @@ if(!checkSecurityToken()) die('CRSF Attack');
 
 $ID    = getID();
 
-require_once(DOKU_INC.'inc/pluginutils.php');
-require_once(DOKU_INC.'inc/html.php');
 $acl = plugin_load('admin','acl');
 $acl->handle();
 
@@ -35,7 +30,6 @@ header('Content-Type: text/html; charset=utf-8');
 if($ajax == 'info'){
     $acl->_html_info();
 }elseif($ajax == 'tree'){
-    require_once(DOKU_INC.'inc/search.php');
     global $conf;
     global $ID;
 
diff --git a/lib/plugins/action.php b/lib/plugins/action.php
index a26bc654a3bcf7375bf5a58cae984ffec01e4bae..885bd7c963f43e1dd9cd7d734062cebcd325a5cb 100644
--- a/lib/plugins/action.php
+++ b/lib/plugins/action.php
@@ -8,9 +8,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_INC.'inc/plugin.php');
-
 /**
  * All DokuWiki plugins to interfere with the event system
  * need to inherit from this class
diff --git a/lib/plugins/admin.php b/lib/plugins/admin.php
index 2eeda3f7b9be81c922e1f8385851e397b1c1edb1..25f01b65791192bd49d68579c68be3435d97b5b8 100644
--- a/lib/plugins/admin.php
+++ b/lib/plugins/admin.php
@@ -8,9 +8,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_INC.'inc/plugin.php');
-
 /**
  * All DokuWiki plugins to extend the admin function
  * need to inherit from this class
diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php
index cbee3440a68da6157af6d30f4a3967813e91ae7e..7cc2918f4b374393ce6b3c5889c97ad4dc96473c 100644
--- a/lib/plugins/config/admin.php
+++ b/lib/plugins/config/admin.php
@@ -9,9 +9,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
-
 define('CM_KEYMARKER','____');            // used for settings with multiple dimensions of array indices
 
 define('PLUGIN_SELF',dirname(__FILE__).'/');
diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php
index d995e8a30becee0517d1fdd727a9bb5559f502a7..f9867b8de60abc2462fe7bb1fd8f9926c57fb779 100644
--- a/lib/plugins/config/settings/config.class.php
+++ b/lib/plugins/config/settings/config.class.php
@@ -528,8 +528,6 @@ if (!class_exists('setting_password')) {
 }
 
 if (!class_exists('setting_email')) {
-
-  require_once(DOKU_INC.'inc/mail.php');
   if (!defined('SETTING_EMAIL_PATTERN')) define('SETTING_EMAIL_PATTERN','<^'.PREG_PATTERN_VALID_EMAIL.'$>');
 
   class setting_email extends setting_string {
diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php
index dc0a7d2fc89ae9b75dae6be7b4b477439c1be08e..ba2831a901f6da32d0716805c8a86e995a28b9b7 100644
--- a/lib/plugins/info/syntax.php
+++ b/lib/plugins/info/syntax.php
@@ -9,9 +9,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'syntax.php');
-
 /**
  * All DokuWiki plugins to extend the parser/rendering mechanism
  * need to inherit from this class
diff --git a/lib/plugins/plugin/admin.php b/lib/plugins/plugin/admin.php
index 198512a43df33936de748bbe3fd3ae9b90aab66e..c662b565a970c6f7eabc1508947cd36f124021c2 100644
--- a/lib/plugins/plugin/admin.php
+++ b/lib/plugins/plugin/admin.php
@@ -13,8 +13,6 @@ if(!defined('DOKU_INC')) die();
 // - allow a plugin to contain extras to be copied to the current template (extra/tpl/)
 // - to images (lib/images/) [ not needed, should go in lib/plugin/images/ ]
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
 require_once(DOKU_PLUGIN."/plugin/classes/ap_manage.class.php");
 
 //--------------------------[ GLOBALS ]------------------------------------------------
diff --git a/lib/plugins/plugin/classes/ap_download.class.php b/lib/plugins/plugin/classes/ap_download.class.php
index 90e5de53b22a7f4ff693f2e5811ac2f6ed7fa693..6ad048d722a853746247f89349a19038dc803fe5 100644
--- a/lib/plugins/plugin/classes/ap_download.class.php
+++ b/lib/plugins/plugin/classes/ap_download.class.php
@@ -197,8 +197,6 @@ class ap_download extends ap_manage {
 
         $ext = $this->guess_archive($file);
         if (in_array($ext, array('tar','bz','gz'))) {
-            require_once(DOKU_INC."inc/TarLib.class.php");
-
             switch($ext){
                 case 'bz':
                     $compress_type = COMPRESS_BZIP;
@@ -227,7 +225,6 @@ class ap_download extends ap_manage {
             }
             return true;
         } else if ($ext == 'zip') {
-            require_once(DOKU_INC."inc/ZipLib.class.php");
 
             $zip = new ZipLib();
             $ok = $zip->Extract($file, $target);
diff --git a/lib/plugins/popularity/admin.php b/lib/plugins/popularity/admin.php
index d084f5b5815d5777d681524efb7aaf09c1e70d69..c72beafdba7cfb397ba1d5c9dbe49bed63b5abc1 100644
--- a/lib/plugins/popularity/admin.php
+++ b/lib/plugins/popularity/admin.php
@@ -8,12 +8,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
-require_once(DOKU_INC.'inc/infoutils.php');
-require_once(DOKU_INC.'inc/pluginutils.php');
-require_once(DOKU_INC.'inc/search.php');
-
 /**
  * All DokuWiki plugins to extend the admin function
  * need to inherit from this class
diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php
index b24b1ff6ea31892876157e84910ff38050206248..1a327ca8a8abd66b952a9efe7be4d716eb4bccd0 100644
--- a/lib/plugins/revert/admin.php
+++ b/lib/plugins/revert/admin.php
@@ -2,10 +2,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
-require_once(DOKU_INC.'inc/changelog.php');
-
 /**
  * All DokuWiki plugins to extend the admin function
  * need to inherit from this class
diff --git a/lib/plugins/syntax.php b/lib/plugins/syntax.php
index 633e001d23807594f372f3a02a19b91045e8af18..601b5591e5a0bfe357714243c873aa98b67ada79 100644
--- a/lib/plugins/syntax.php
+++ b/lib/plugins/syntax.php
@@ -8,9 +8,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_INC.'inc/parser/parser.php');
-
 /**
  * All DokuWiki plugins to extend the parser/rendering mechanism
  * need to inherit from this class
diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php
index da6029bbf4d65301a1677e94e61c196171ba549a..4eb923bb1e25ebb932522d088a00f4f3d7d4404d 100644
--- a/lib/plugins/usermanager/admin.php
+++ b/lib/plugins/usermanager/admin.php
@@ -13,9 +13,7 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
 if(!defined('DOKU_PLUGIN_IMAGES')) define('DOKU_PLUGIN_IMAGES',DOKU_BASE.'lib/plugins/usermanager/images/');
-require_once(DOKU_PLUGIN.'admin.php');
 
 /**
  * All DokuWiki plugins to extend the admin function