Index: typo3/sysext/cms/tslib/class.tslib_fe.php
===================================================================
--- typo3/sysext/cms/tslib/class.tslib_fe.php	(revision 4349)
+++ typo3/sysext/cms/tslib/class.tslib_fe.php	(working copy)
@@ -184,7 +184,6 @@
  *
  */
 
-require_once (PATH_t3lib.'class.t3lib_lock.php');
 
 
 
Index: typo3/sysext/cms/tslib/class.tslib_content.php
===================================================================
--- typo3/sysext/cms/tslib/class.tslib_content.php	(revision 4349)
+++ typo3/sysext/cms/tslib/class.tslib_content.php	(working copy)
@@ -215,13 +215,7 @@
  */
 
 
-  // Includes this classes since it is used for parsing HTML
-require_once(PATH_t3lib."class.t3lib_parsehtml.php");
 
-	// Object TypoScript library included:
-if(t3lib_extMgm::isLoaded('obts')) {
-	require_once(t3lib_extMgm::extPath('obts').'_tsobject/_tso.php');
-}
 
 
 
@@ -238,7 +232,6 @@
 
 
 
-
 /**
  * This class contains all main TypoScript features.
  * This includes the rendering of TypoScript content objects (cObjects).
@@ -5979,7 +5972,7 @@
 		$parts = explode('->',$funcName);
 		if (count($parts)==2)	{	// Class
 			$cls = t3lib_div::makeInstanceClassName($parts[0]);
-			if (class_exists ($cls))	{
+			if (class_exists($cls, false)) {
 				$classObj = new $cls;
 				if (method_exists($classObj, $parts[1]))	{
 					$classObj->cObj = &$this;
Index: typo3/sysext/cms/tslib/index_ts.php
===================================================================
--- typo3/sysext/cms/tslib/index_ts.php	(revision 4349)
+++ typo3/sysext/cms/tslib/index_ts.php	(working copy)
@@ -92,6 +92,11 @@
 $TT->pull();
 
 
+// *********************
+// Autoloader
+// *********************
+require_once(PATH_t3lib . 'class.t3lib_autoload.php');
+t3lib_autoload::getInstance()->installAutoloader();
 
 // **********************
 // Include configuration
@@ -105,7 +110,6 @@
 	define('PATH_tslib', t3lib_extMgm::extPath('cms').'tslib/');
 }
 
-require_once(PATH_t3lib.'class.t3lib_db.php');
 $TYPO3_DB = t3lib_div::makeInstance('t3lib_DB');
 $TYPO3_DB->debugOutput = $TYPO3_CONF_VARS['SYS']['sqlDebug'];
 
@@ -132,46 +136,16 @@
 // *********************
 if ($temp_extId = t3lib_div::_GP('eID'))	{
 	if ($classPath = t3lib_div::getFileAbsFileName($TYPO3_CONF_VARS['FE']['eID_include'][$temp_extId]))	{
-		require_once(PATH_tslib.'class.tslib_eidtools.php');
 		require($classPath);
 	}
 	exit;
 }
 
-// *********************
-// Libraries included
-// *********************
-$TT->push('Include Frontend libraries','');
-	require_once(PATH_tslib.'class.tslib_fe.php');
-	require_once(PATH_t3lib.'class.t3lib_page.php');
-	require_once(PATH_t3lib.'class.t3lib_userauth.php');
-	require_once(PATH_tslib.'class.tslib_feuserauth.php');
-	require_once(PATH_t3lib.'class.t3lib_tstemplate.php');
-	require_once(PATH_t3lib.'class.t3lib_cs.php');
-$TT->pull();
-
 // ***********************************
 // Initializing the Caching System
 // ***********************************
 
 $TT->push('Initializing the Caching System','');
-		// TODO implement autoloading so that we only require stuff we really need
-	require_once(PATH_t3lib . 'class.t3lib_cache.php');
-
-	require_once(PATH_t3lib . 'cache/class.t3lib_cache_abstractbackend.php');
-	require_once(PATH_t3lib . 'cache/class.t3lib_cache_abstractcache.php');
-	require_once(PATH_t3lib . 'cache/class.t3lib_cache_exception.php');
-	require_once(PATH_t3lib . 'cache/class.t3lib_cache_factory.php');
-	require_once(PATH_t3lib . 'cache/class.t3lib_cache_manager.php');
-	require_once(PATH_t3lib . 'cache/class.t3lib_cache_variablecache.php');
-
-	require_once(PATH_t3lib . 'cache/exception/class.t3lib_cache_exception_classalreadyloaded.php');
-	require_once(PATH_t3lib . 'cache/exception/class.t3lib_cache_exception_duplicateidentifier.php');
-	require_once(PATH_t3lib . 'cache/exception/class.t3lib_cache_exception_invalidbackend.php');
-	require_once(PATH_t3lib . 'cache/exception/class.t3lib_cache_exception_invalidcache.php');
-	require_once(PATH_t3lib . 'cache/exception/class.t3lib_cache_exception_invaliddata.php');
-	require_once(PATH_t3lib . 'cache/exception/class.t3lib_cache_exception_nosuchcache.php');
-
 	$typo3CacheManager = t3lib_div::makeInstance('t3lib_cache_Manager');
 	$cacheFactoryClass = t3lib_div::makeInstanceClassName('t3lib_cache_Factory');
 	$typo3CacheFactory = new $cacheFactoryClass($typo3CacheManager);
@@ -257,10 +231,6 @@
 if ($_COOKIE['be_typo_user']) {		// If the backend cookie is set, we proceed and checks if a backend user is logged in.
 	$TYPO3_MISC['microtime_BE_USER_start'] = microtime();
 	$TT->push('Back End user initialized','');
-		require_once (PATH_t3lib.'class.t3lib_befunc.php');
-		require_once (PATH_t3lib.'class.t3lib_userauthgroup.php');
-		require_once (PATH_t3lib.'class.t3lib_beuserauth.php');
-		require_once (PATH_t3lib.'class.t3lib_tsfebeuserauth.php');
 
 			// the value this->formfield_status is set to empty in order to disable login-attempts to the backend account through this script
 		$BE_USER = t3lib_div::makeInstance('t3lib_tsfeBeUserAuth');	// New backend user object
@@ -281,10 +251,6 @@
 	$TT->pull();
 	$TYPO3_MISC['microtime_BE_USER_end'] = microtime();
 } elseif ($TSFE->ADMCMD_preview_BEUSER_uid)	{
-	require_once (PATH_t3lib.'class.t3lib_befunc.php');
-	require_once (PATH_t3lib.'class.t3lib_userauthgroup.php');
-	require_once (PATH_t3lib.'class.t3lib_beuserauth.php');
-	require_once (PATH_t3lib.'class.t3lib_tsfebeuserauth.php');
 
 		// the value this->formfield_status is set to empty in order to disable login-attempts to the backend account through this script
 	$BE_USER = t3lib_div::makeInstance('t3lib_tsfeBeUserAuth');	// New backend user object
@@ -371,16 +337,9 @@
 	if (($BE_USER->extAdmModuleEnabled('edit') && $BE_USER->extIsAdmMenuOpen('edit')) || $TSFE->displayEditIcons == 1)	{
 		$TSFE->includeTCA();
 		if ($BE_USER->extIsEditAction())	{
-			require_once (PATH_t3lib.'class.t3lib_tcemain.php');
 			$BE_USER->extEditAction();
 		}
-		if ($BE_USER->extIsFormShown())	{
-			require_once(PATH_t3lib.'class.t3lib_tceforms.php');
-			require_once(PATH_t3lib.'class.t3lib_iconworks.php');
-			require_once(PATH_t3lib.'class.t3lib_loaddbgroup.php');
-			require_once(PATH_t3lib.'class.t3lib_transferdata.php');
 		}
-	}
 
 	if ($TSFE->forceTemplateParsing || $TSFE->displayEditIcons || $TSFE->displayFieldEditIcons)	{ $TSFE->set_no_cache(); }
 }
@@ -444,12 +403,9 @@
 // *******************************
 switch($TSFE->checkDataSubmission())	{
 	case 'email':
-		require_once(PATH_t3lib.'class.t3lib_htmlmail.php');
-		require_once(PATH_t3lib.'class.t3lib_formmail.php');
 		$TSFE->sendFormmail();
 	break;
 	case 'fe_tce':
-		require_once(PATH_tslib.'class.tslib_fetce.php');
 		$TSFE->includeTCA();
 		$TT->push('fe_tce','');
 		$TSFE->fe_tce();
@@ -464,9 +420,6 @@
 $TSFE->setUrlIdToken();
 
 $TT->push('Page generation','');
-	if ($TSFE->doXHTML_cleaning()) {
-		require_once(PATH_t3lib.'class.t3lib_parsehtml.php');
-	}
 	if ($TSFE->isGeneratePage()) {
 		$TSFE->generatePage_preProcessing();
 		$temp_theScript=$TSFE->generatePage_whichScript();
@@ -474,12 +427,10 @@
 		if ($temp_theScript) {
 			include($temp_theScript);
 		} else {
-			require_once(PATH_tslib.'class.tslib_pagegen.php');
 			include(PATH_tslib.'pagegen.php');
 		}
 		$TSFE->generatePage_postProcessing();
 	} elseif ($TSFE->isINTincScript()) {
-		require_once(PATH_tslib.'class.tslib_pagegen.php');
 		include(PATH_tslib.'pagegen.php');
 	}
 $TT->pull();
