Index: tests/t3lib/cache/frontend/t3lib_cache_frontend_abstractfrontendtestcase.php
===================================================================
--- tests/t3lib/cache/frontend/t3lib_cache_frontend_abstractfrontendtestcase.php	(revision 7827)
+++ tests/t3lib/cache/frontend/t3lib_cache_frontend_abstractfrontendtestcase.php	(working copy)
@@ -44,7 +44,7 @@
 	 */
 	public function theConstructorAcceptsValidIdentifiers() {
 		$mockBackend = $this->getMock('t3lib_cache_backend_AbstractBackend', array('get', 'set', 'has', 'remove', 'findIdentifiersByTag', 'findIdentifiersByTags', 'flush', 'flushByTag', 'flushByTags', 'collectGarbage'), array(), '', FALSE);
-		foreach (array('x', 'someValue', '123fivesixseveneight', 'some&', 'ab_cd%', rawurlencode('package://some/äöü$&% sadf'), str_repeat('x', 250)) as $identifier) {
+		foreach (array('x', 'someValue', '123fivesixseveneight', 'some&', 'ab_cd%', rawurlencode('resource://some/äöü$&% sadf'), str_repeat('x', 250)) as $identifier) {
 			$abstractCache = $this->getMock('t3lib_cache_frontend_StringFrontend', array('__construct', 'get', 'set', 'has', 'remove', 'getByTag', 'flush', 'flushByTag', 'collectGarbage'), array($identifier, $mockBackend));
 		}
 	}
Index: tests/t3lib/cache/backend/t3lib_cache_backend_apcbackendtestcase.php
===================================================================
--- tests/t3lib/cache/backend/t3lib_cache_backend_apcbackendtestcase.php	(revision 7827)
+++ tests/t3lib/cache/backend/t3lib_cache_backend_apcbackendtestcase.php	(working copy)
@@ -203,15 +203,15 @@
 		$backend = $this->setUpBackend();
 
 		$data = 'some data' . microtime();
-		$backend->set('BackendMemcacheTest1', $data, array('UnitTestTag%test', 'UnitTestTag%boring'));
-		$backend->set('BackendMemcacheTest2', $data, array('UnitTestTag%test', 'UnitTestTag%special'));
-		$backend->set('BackendMemcacheTest3', $data, array('UnitTestTag%test'));
+		$backend->set('BackendAPCTest1', $data, array('UnitTestTag%test', 'UnitTestTag%boring'));
+		$backend->set('BackendAPCTest2', $data, array('UnitTestTag%test', 'UnitTestTag%special'));
+		$backend->set('BackendAPCTest3', $data, array('UnitTestTag%test'));
 
 		$backend->flushByTag('UnitTestTag%special');
 
-		$this->assertTrue($backend->has('BackendMemcacheTest1'), 'BackendMemcacheTest1');
-		$this->assertFalse($backend->has('BackendMemcacheTest2'), 'BackendMemcacheTest2');
-		$this->assertTrue($backend->has('BackendMemcacheTest3'), 'BackendMemcacheTest3');
+		$this->assertTrue($backend->has('BackendAPCTest1'), 'BackendAPCTest1');
+		$this->assertFalse($backend->has('BackendAPCTest2'), 'BackendAPCTest2');
+		$this->assertTrue($backend->has('BackendAPCTest3'), 'BackendAPCTest3');
 	}
 
 	/**
@@ -222,15 +222,15 @@
 		$backend = $this->setUpBackend();
 
 		$data = 'some data' . microtime();
-		$backend->set('BackendMemcacheTest1', $data);
-		$backend->set('BackendMemcacheTest2', $data);
-		$backend->set('BackendMemcacheTest3', $data);
+		$backend->set('BackendAPCTest1', $data);
+		$backend->set('BackendAPCTest2', $data);
+		$backend->set('BackendAPCTest3', $data);
 
 		$backend->flush();
 
-		$this->assertFalse($backend->has('BackendMemcacheTest1'), 'BackendMemcacheTest1');
-		$this->assertFalse($backend->has('BackendMemcacheTest2'), 'BackendMemcacheTest2');
-		$this->assertFalse($backend->has('BackendMemcacheTest3'), 'BackendMemcacheTest3');
+		$this->assertFalse($backend->has('BackendAPCTest1'), 'BackendAPCTest1');
+		$this->assertFalse($backend->has('BackendAPCTest2'), 'BackendAPCTest2');
+		$this->assertFalse($backend->has('BackendAPCTest3'), 'BackendAPCTest3');
 	}
 
 	/**
@@ -274,14 +274,14 @@
 	}
 
 	/**
-	 * Sets up the memcached backend used for testing
+	 * Sets up the APC backend used for testing
 	 *
-	 * @param	array	$backendOptions Options for the memcache backend
+	 * @param array $backendOptions Options for the APC backend
 	 * @return t3lib_cache_backend_ApcBackend
 	 * @author Karsten Dambekalns <karsten@typo3.org>
 	 * @author Ingo Renner <ingo@typo3.org>
 	 */
-	protected function setUpBackend(array $backendOptions = array()) {
+	protected function setUpBackend() {
 		$cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE);
 		$backend = new t3lib_cache_backend_ApcBackend();
 		$backend->setCache($cache);
Index: t3lib/cache/frontend/class.t3lib_cache_frontend_stringfrontend.php
===================================================================
--- t3lib/cache/frontend/class.t3lib_cache_frontend_stringfrontend.php	(revision 7827)
+++ t3lib/cache/frontend/class.t3lib_cache_frontend_stringfrontend.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_frontend_stringfrontend.php 6536 2009-11-25 14:07:18Z stucki $
  */
 class t3lib_cache_frontend_StringFrontend extends t3lib_cache_frontend_AbstractFrontend {
Index: t3lib/cache/frontend/interfaces/interface.t3lib_cache_frontend_frontend.php
===================================================================
--- t3lib/cache/frontend/interfaces/interface.t3lib_cache_frontend_frontend.php	(revision 7827)
+++ t3lib/cache/frontend/interfaces/interface.t3lib_cache_frontend_frontend.php	(working copy)
@@ -31,6 +31,7 @@
  *
  * @author	Ingo Renner <ingo@typo3.org>
  * @package TYPO3
+ * @api
  * @subpackage t3lib_cache
  */
 interface t3lib_cache_frontend_Frontend {
@@ -142,7 +143,7 @@
 	/**
 	 * Checks the validity of an entry identifier. Returns true if it's valid.
 	 *
-	 * @param string An identifier to be checked for validity
+	 * @param string $identifier An identifier to be checked for validity
 	 * @return boolean
 	 */
 	public function isValidEntryIdentifier($identifier);
@@ -150,7 +151,7 @@
 	/**
 	 * Checks the validity of a tag. Returns true if it's valid.
 	 *
-	 * @param string A tag to be checked for validity
+	 * @param string $tag A tag to be checked for validity
 	 * @return boolean
 	 */
 	public function isValidTag($tag);
Index: t3lib/cache/frontend/class.t3lib_cache_frontend_abstractfrontend.php
===================================================================
--- t3lib/cache/frontend/class.t3lib_cache_frontend_abstractfrontend.php	(revision 7827)
+++ t3lib/cache/frontend/class.t3lib_cache_frontend_abstractfrontend.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_frontend_abstractfrontend.php 5595 2009-06-15 21:40:01Z flyguide $
  */
 abstract class t3lib_cache_frontend_AbstractFrontend implements t3lib_cache_frontend_Frontend {
@@ -190,7 +191,7 @@
 	/**
 	 * Checks the validity of an entry identifier. Returns true if it's valid.
 	 *
-	 * @param string An identifier to be checked for validity
+	 * @param string $identifier An identifier to be checked for validity
 	 * @return boolean
 	 * @author Christian Jul Jensen <julle@typo3.org>
 	 */
@@ -201,7 +202,7 @@
 	/**
 	 * Checks the validity of a tag. Returns true if it's valid.
 	 *
-	 * @param string An identifier to be checked for validity
+	 * @param string $tag An identifier to be checked for validity
 	 * @return boolean
 	 * @author Robert Lemke <robert@typo3.org>
 	 */
Index: t3lib/cache/frontend/class.t3lib_cache_frontend_variablefrontend.php
===================================================================
--- t3lib/cache/frontend/class.t3lib_cache_frontend_variablefrontend.php	(revision 7827)
+++ t3lib/cache/frontend/class.t3lib_cache_frontend_variablefrontend.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_frontend_variablefrontend.php 5595 2009-06-15 21:40:01Z flyguide $
  */
 class t3lib_cache_frontend_VariableFrontend extends t3lib_cache_frontend_AbstractFrontend {
Index: t3lib/cache/class.t3lib_cache_factory.php
===================================================================
--- t3lib/cache/class.t3lib_cache_factory.php	(revision 7827)
+++ t3lib/cache/class.t3lib_cache_factory.php	(working copy)
@@ -32,6 +32,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_factory.php 5595 2009-06-15 21:40:01Z flyguide $
  */
 class t3lib_cache_Factory implements t3lib_Singleton {
@@ -48,7 +49,7 @@
 	 *
 	 * This is called by the cache manager itself
 	 *
-	 * @param t3lib_cache_Manager The cache manager
+	 * @param t3lib_cache_Manager $cacheManager The cache manager
 	 * @return void
 	 * @author Robert Lemke <robert@typo3.org>
 	 * @internal
@@ -61,10 +62,10 @@
 	 * Factory method which creates the specified cache along with the specified kind of backend.
 	 * After creating the cache, it will be registered at the cache manager.
 	 *
-	 * @param string The name / identifier of the cache to create
-	 * @param string Name of the cache frontend
-	 * @param string Name of the cache backend
-	 * @param array (optional) Array of backend options
+	 * @param string $cacheIdentifier The name / identifier of the cache to create
+	 * @param string $cacheName Name of the cache frontend
+	 * @param string $backendName Name of the cache backend
+	 * @param array $backendOptions (optional) Array of backend options
 	 * @return t3lib_cache_frontend_Frontend The created cache frontend
 	 * @author Robert Lemke <robert@typo3.org>
 	 */
Index: t3lib/cache/class.t3lib_cache_manager.php
===================================================================
--- t3lib/cache/class.t3lib_cache_manager.php	(revision 7827)
+++ t3lib/cache/class.t3lib_cache_manager.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_manager.php 5595 2009-06-15 21:40:01Z flyguide $
  */
 class t3lib_cache_Manager implements t3lib_Singleton {
@@ -114,7 +115,7 @@
 				$backend        = isset($configuration['backend'])        ? $configuration['backend']        : $this->cacheConfigurations['default']['backend'];
 				$backendOptions = isset($configuration['backendOptions']) ? $configuration['backendOptions'] : $this->cacheConfigurations['default']['backendOptions'];
 
-				$cache = $this->cacheFactory->create($identifier, $frontend, $backend, $backendOptions);
+				$this->cacheFactory->create($identifier, $frontend, $backend, $backendOptions);
 			}
 		}
 	}
Index: t3lib/cache/backend/class.t3lib_cache_backend_memcachedbackend.php
===================================================================
--- t3lib/cache/backend/class.t3lib_cache_backend_memcachedbackend.php	(revision 7827)
+++ t3lib/cache/backend/class.t3lib_cache_backend_memcachedbackend.php	(working copy)
@@ -51,6 +51,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_backend_memcachedbackend.php 7823 2010-06-06 13:43:22Z lolli $
  */
 class t3lib_cache_backend_MemcachedBackend extends t3lib_cache_backend_AbstractBackend {
@@ -118,7 +119,6 @@
 		parent::__construct($options);
 
 		$this->memcache = new Memcache();
-		$this->identifierPrefix = $this->getIdentifierPrefix();
 		$defaultPort = ini_get('memcache.default_port');
 
 		if (!count($this->servers)) {
@@ -185,6 +185,19 @@
 	}
 
 	/**
+	 * Initializes the identifier prefix when setting the cache.
+	 *
+	 * @param t3lib_cache_frontend_Frontend $cache The frontend for this backend
+	 * @return void
+	 * @author Robert Lemke <robert@typo3.org>
+	 * @author Dmitry Dulepov
+	 */
+	public function setCache(t3lib_cache_frontend_Frontend $cache) {
+		parent::setCache($cache);
+		$this->identifierPrefix = 'TYPO3_' . md5(PATH_site) . '_';
+	}
+
+	/**
 	 * Saves data in the cache.
 	 *
 	 * @param string An identifier for this specific cache entry
@@ -221,7 +234,7 @@
 			);
 		}
 
-		$tags[] = '%MEMCACHEBE%' . $this->cache->getIdentifier();
+		$tags[] = '%MEMCACHEBE%' . $this->cacheIdentifier;
 		$expiration = $lifetime !== NULL ? $lifetime : $this->defaultLifetime;
 
 			// Memcached consideres values over 2592000 sec (30 days) as UNIX timestamp
@@ -384,7 +397,7 @@
 			throw new t3lib_cache_Exception('No cache frontend has been set via setCache() yet.', 1204111376);
 		}
 
-		$this->flushByTag('%MEMCACHEBE%' . $this->cache->getIdentifier());
+		$this->flushByTag('%MEMCACHEBE%' . $this->cacheIdentifier);
 	}
 
 	/**
@@ -553,20 +566,6 @@
 	}
 
 	/**
-	 * Returns idenfier prefix. Extensions can override this function to provide
-	 * another identifier prefix if it is necessary for special purposes.
-	 * Default identifier prefix is based on PATH_site only. In most cases
-	 * it is enough because different installations use different paths and page
-	 * IDs in the same installation never repeat.
-	 *
-	 * @return	string	Identifier prefix, ending with underscore
-	 * @author	Dmitry Dulepov
-	 */
-	protected function getIdentifierPrefix() {
-		return 'TYPO3_' . md5(PATH_site) . '_';
-	}
-
-	/**
 	 * Does nothing, as memcached does GC itself
 	 *
 	 * @return void
Index: t3lib/cache/backend/interfaces/interface.t3lib_cache_backend_backend.php
===================================================================
--- t3lib/cache/backend/interfaces/interface.t3lib_cache_backend_backend.php	(revision 7827)
+++ t3lib/cache/backend/interfaces/interface.t3lib_cache_backend_backend.php	(working copy)
@@ -31,6 +31,7 @@
  *
  * @author	Ingo Renner <ingo@typo3.org>
  * @package TYPO3
+ * @api
  * @subpackage t3lib
  */
 interface t3lib_cache_backend_Backend {
@@ -60,7 +61,7 @@
 	/**
 	 * Loads data from the cache.
 	 *
-	 * @param string $entryIdentifier: An identifier which describes the cache entry to load
+	 * @param string $entryIdentifier An identifier which describes the cache entry to load
 	 * @return mixed The cache entry's content as a string or FALSE if the cache entry could not be loaded
 	 */
 	public function get($entryIdentifier);
Index: t3lib/cache/backend/class.t3lib_cache_backend_nullbackend.php
===================================================================
--- t3lib/cache/backend/class.t3lib_cache_backend_nullbackend.php	(revision 7827)
+++ t3lib/cache/backend/class.t3lib_cache_backend_nullbackend.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_backend_nullbackend.php 5149 2009-03-08 15:39:26Z flyguide $
  */
 class t3lib_cache_backend_NullBackend extends t3lib_cache_backend_AbstractBackend {
Index: t3lib/cache/backend/class.t3lib_cache_backend_filebackend.php
===================================================================
--- t3lib/cache/backend/class.t3lib_cache_backend_filebackend.php	(revision 7827)
+++ t3lib/cache/backend/class.t3lib_cache_backend_filebackend.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_backend_filebackend.php 7816 2010-06-06 11:37:12Z lolli $
  */
 class t3lib_cache_backend_FileBackend extends t3lib_cache_backend_AbstractBackend {
@@ -101,7 +102,7 @@
 				}
 			} else {
 				$delimiter = ':';
-				if ($cacheDirectory{0} != '/') {
+				if ($cacheDirectory[0] != '/') {
 						// relative path to cache directory.
 					$cacheDirectory = PATH_site . $cacheDirectory;
 				}
@@ -114,7 +115,7 @@
 				if (TYPO3_OS === 'WIN') {
 					$basedir = str_replace('\\', '/', $basedir);
 				}
-				if ($basedir{strlen($basedir) - 1} !== '/') {
+				if ($basedir[strlen($basedir) - 1] !== '/') {
 					$basedir .= '/';
 				}
 				if (t3lib_div::isFirstPartOfStr($cacheDirectory, $basedir)) {
@@ -131,7 +132,7 @@
 				);
 			}
 		} else {
-			if ($cacheDirectory{0} == '/') {
+			if ($cacheDirectory[0] == '/') {
 					// absolute path to cache directory.
 				$documentRoot = '/';
 			}
@@ -143,7 +144,7 @@
 
 		// after this point all paths have '/' as directory seperator
 
-		if ($cacheDirectory{strlen($cacheDirectory) - 1} !== '/') {
+		if ($cacheDirectory[strlen($cacheDirectory) - 1] !== '/') {
 			$cacheDirectory .= '/';
 		}
 
@@ -285,7 +286,7 @@
 	 * Creates a tag that is associated with the given cache identifier
 	 *
 	 * @param string $entryIdentifier An identifier for this specific cache entry
-	 * @param string Tag to associate with this cache entry
+	 * @param string $tag Tag to associate with this cache entry
 	 * @return void
 	 * @throws t3lib_cache_Exception if the tag path is not writable or exceeds the maximum allowed path length
 	 * @author Bastian Waidelich <bastian@typo3.org>
@@ -304,7 +305,7 @@
 			}
 		}
 
-		$tagPathAndFilename = $absTagPath . $this->cache->getIdentifier()
+		$tagPathAndFilename = $absTagPath . $this->cacheIdentifier
 			. self::SEPARATOR . $entryIdentifier;
 		if (strlen($tagPathAndFilename) > $this->maximumPathLength) {
 			throw new t3lib_cache_Exception(
@@ -356,7 +357,7 @@
 			return FALSE;
 		}
 
-		if (unlink ($pathAndFilename) === FALSE) {
+		if (unlink($pathAndFilename) === FALSE) {
 			return FALSE;
 		}
 
@@ -365,7 +366,7 @@
 				return FALSE;
 			}
 
-			if (unlink ($pathAndFilename) === FALSE) {
+			if (unlink($pathAndFilename) === FALSE) {
 				return FALSE;
 			}
 		}
@@ -391,7 +392,7 @@
 		}
 
 		$path = $this->root . $this->cacheDirectory . 'tags/';
-		$pattern = $path . $tag . '/' . $this->cache->getIdentifier() . self::SEPARATOR . '*';
+		$pattern = $path . $tag . '/' . $this->cacheIdentifier . self::SEPARATOR . '*';
 		$filesFound = glob($pattern);
 
 		if ($filesFound === FALSE || count($filesFound) === 0) {
@@ -450,7 +451,7 @@
 			);
 		}
 
-		$dataPath = $this->root . $this->cacheDirectory . 'data/' . $this->cache->getIdentifier() . '/';
+		$dataPath = $this->root . $this->cacheDirectory . 'data/' . $this->cacheIdentifier . '/';
 		$tagsPath = $this->root . $this->cacheDirectory . 'tags/';
 
 		t3lib_div::rmdir($dataPath, true);
@@ -515,7 +516,7 @@
 			);
 		}
 
-		$pattern = $this->root . $this->cacheDirectory . 'data/' . $this->cache->getIdentifier() . '/*/*/*';
+		$pattern = $this->root . $this->cacheDirectory . 'data/' . $this->cacheIdentifier . '/*/*/*';
 		$filesFound = glob($pattern);
 
 		foreach ($filesFound as $cacheFilename) {
@@ -536,7 +537,7 @@
 	 */
 	protected function renderCacheEntryPath($identifier) {
 		$identifierHash = sha1($identifier);
-		return $this->cacheDirectory . 'data/' . $this->cache->getIdentifier() . '/' . $identifierHash[0] . '/' . $identifierHash[1] . '/';
+		return $this->cacheDirectory . 'data/' . $this->cacheIdentifier . '/' . $identifierHash[0] . '/' . $identifierHash[1] . '/';
 	}
 
 	/**
@@ -544,7 +545,7 @@
 	 * Usually only one cache entry should be found - if more than one exist, this
 	 * is due to some error or crash.
 	 *
-	 * @param string The cache entry identifier
+	 * @param string $entryIdentifier The cache entry identifier
 	 * @return mixed The file names (including path) as an array if one or more entries could be found, otherwise FALSE
 	 * @author Robert Lemke <robert@typo3.org>
 	 * @throws t3lib_cache_Exception if no frontend has been set
@@ -571,7 +572,7 @@
 	/**
 	 * Tries to find the tag entries for the specified cache entry.
 	 *
-	 * @param string The cache entry identifier to find tag files for
+	 * @param string $entryIdentifier The cache entry identifier to find tag files for
 	 * @return array The file names (including path)
 	 * @author Robert Lemke <robert@typo3.org>
 	 * @throws t3lib_cache_Exception if no frontend has been set
@@ -586,8 +587,9 @@
 		}
 
 		$path = $this->root . $this->cacheDirectory . 'tags/';
-		$pattern = $path . '*/' . $this->cache->getIdentifier() . self::SEPARATOR . $entryIdentifier;
-		return glob($pattern);
+		$pattern = $path . '*/' . $this->cacheIdentifier . self::SEPARATOR . $entryIdentifier;
+		$tagFilesFound = glob($pattern);
+		return ($tagFilesFound ? $tagFilesFound : array());
 	}
 }
 
Index: t3lib/cache/backend/class.t3lib_cache_backend_transientmemorybackend.php
===================================================================
--- t3lib/cache/backend/class.t3lib_cache_backend_transientmemorybackend.php	(revision 7827)
+++ t3lib/cache/backend/class.t3lib_cache_backend_transientmemorybackend.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_backend_transientmemorybackend.php 6536 2009-11-25 14:07:18Z stucki $
  */
 class t3lib_cache_backend_TransientMemoryBackend extends t3lib_cache_backend_AbstractBackend {
Index: t3lib/cache/backend/class.t3lib_cache_backend_abstractbackend.php
===================================================================
--- t3lib/cache/backend/class.t3lib_cache_backend_abstractbackend.php	(revision 7827)
+++ t3lib/cache/backend/class.t3lib_cache_backend_abstractbackend.php	(working copy)
@@ -30,6 +30,7 @@
  * @author	Ingo Renner <ingo@typo3.org>
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_backend_abstractbackend.php 5595 2009-06-15 21:40:01Z flyguide $
  */
 abstract class t3lib_cache_backend_AbstractBackend implements t3lib_cache_backend_Backend {
@@ -45,6 +46,11 @@
 	protected $cache;
 
 	/**
+	 * @var string
+	 */
+	protected $cacheIdentifier;
+
+	/**
 	 * Default lifetime of a cache entry in seconds
 	 *
 	 * @var integer
@@ -79,12 +85,13 @@
 	 */
 	public function setCache(t3lib_cache_frontend_Frontend $cache) {
 		$this->cache = $cache;
+		$this->cacheIdentifier = $this->cache->getIdentifier();
 	}
 
 	/**
 	 * Sets the default lifetime for this cache backend
 	 *
-	 * @param integer $defaultLifeTime Default lifetime of this cache backend in seconds. If NULL is specified, the default lifetime is used. "0" means unlimited liftime.
+	 * @param integer $defaultLifetime Default lifetime of this cache backend in seconds. If NULL is specified, the default lifetime is used. "0" means unlimited liftime.
 	 * @return void
 	 * @author Karsten Dambekalns <karsten@typo3.org>
 	 */
Index: t3lib/cache/backend/class.t3lib_cache_backend_apcbackend.php
===================================================================
--- t3lib/cache/backend/class.t3lib_cache_backend_apcbackend.php	(revision 7827)
+++ t3lib/cache/backend/class.t3lib_cache_backend_apcbackend.php	(working copy)
@@ -41,7 +41,7 @@
  * Each key is prepended with a prefix. By default prefix consists from two parts
  * separated by underscore character and ends in yet another underscore character:
  * - "TYPO3"
- * - MD5 of script path and filename and SAPI name
+ * - MD5 of path to TYPO3 and user running TYPO3
  * This prefix makes sure that keys from the different installations do not
  * conflict.
  *
@@ -49,6 +49,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_backend_apcbackend.php 6577 2009-11-29 13:21:28Z ohader $
  */
 class t3lib_cache_backend_ApcBackend extends t3lib_cache_backend_AbstractBackend {
@@ -79,6 +80,20 @@
 	}
 
 	/**
+	 * Initializes the identifier prefix when setting the cache.
+	 *
+	 * @param t3lib_cache_frontend_Frontend $cache The frontend for this backend
+	 * @return void
+	 * @author Robert Lemke <robert@typo3.org>
+	 */
+	public function setCache(t3lib_cache_frontend_Frontend $cache) {
+		parent::setCache($cache);
+		$processUser = extension_loaded('posix') ? posix_getpwuid(posix_geteuid()) : array('name' => 'default');
+		$pathHash = t3lib_div::shortMD5(PATH_site . $processUser['name'], 12);
+		$this->identifierPrefix = 'TYPO3_' . $pathHash;
+	}
+
+	/**
 	 * Saves data in the cache.
 	 *
 	 * @param string $entryIdentifier An identifier for this specific cache entry
@@ -107,7 +122,7 @@
 			);
 		}
 
-		$tags[] = '%APCBE%' . $this->cache->getIdentifier();
+		$tags[] = '%APCBE%' . $this->cacheIdentifier;
 		$expiration = $lifetime !== NULL ? $lifetime : $this->defaultLifetime;
 
 		$success = apc_store($this->identifierPrefix . $entryIdentifier, $data, $expiration);
@@ -241,7 +256,7 @@
 			);
 		}
 
-		$this->flushByTag('%APCBE%' . $this->cache->getIdentifier());
+		$this->flushByTag('%APCBE%' . $this->cacheIdentifier);
 	}
 
 	/**
Index: t3lib/cache/backend/class.t3lib_cache_backend_dbbackend.php
===================================================================
--- t3lib/cache/backend/class.t3lib_cache_backend_dbbackend.php	(revision 7827)
+++ t3lib/cache/backend/class.t3lib_cache_backend_dbbackend.php	(working copy)
@@ -28,6 +28,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_backend_dbbackend.php 7311 2010-04-12 18:12:52Z lolli $
  */
 class t3lib_cache_backend_DbBackend extends t3lib_cache_backend_AbstractBackend {
Index: t3lib/cache/class.t3lib_cache_exception.php
===================================================================
--- t3lib/cache/class.t3lib_cache_exception.php	(revision 7827)
+++ t3lib/cache/class.t3lib_cache_exception.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_exception.php 5165 2009-03-09 18:28:59Z ohader $
  */
 class t3lib_cache_Exception extends Exception {
Index: t3lib/cache/exception/class.t3lib_cache_exception_invalidcache.php
===================================================================
--- t3lib/cache/exception/class.t3lib_cache_exception_invalidcache.php	(revision 7827)
+++ t3lib/cache/exception/class.t3lib_cache_exception_invalidcache.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_exception_invalidcache.php 5165 2009-03-09 18:28:59Z ohader $
  */
 class t3lib_cache_exception_InvalidCache extends t3lib_cache_Exception {
Index: t3lib/cache/exception/class.t3lib_cache_exception_duplicateidentifier.php
===================================================================
--- t3lib/cache/exception/class.t3lib_cache_exception_duplicateidentifier.php	(revision 7827)
+++ t3lib/cache/exception/class.t3lib_cache_exception_duplicateidentifier.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_exception_duplicateidentifier.php 5165 2009-03-09 18:28:59Z ohader $
  */
 class t3lib_cache_exception_DuplicateIdentifier extends t3lib_cache_Exception {
Index: t3lib/cache/exception/class.t3lib_cache_exception_invalidbackend.php
===================================================================
--- t3lib/cache/exception/class.t3lib_cache_exception_invalidbackend.php	(revision 7827)
+++ t3lib/cache/exception/class.t3lib_cache_exception_invalidbackend.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_exception_invalidbackend.php 5165 2009-03-09 18:28:59Z ohader $
  */
 class t3lib_cache_exception_InvalidBackend extends t3lib_cache_Exception {
Index: t3lib/cache/exception/class.t3lib_cache_exception_classalreadyloaded.php
===================================================================
--- t3lib/cache/exception/class.t3lib_cache_exception_classalreadyloaded.php	(revision 7827)
+++ t3lib/cache/exception/class.t3lib_cache_exception_classalreadyloaded.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_exception_classalreadyloaded.php 5165 2009-03-09 18:28:59Z ohader $
  */
 class t3lib_cache_exception_ClassAlreadyLoaded extends t3lib_cache_Exception {
Index: t3lib/cache/exception/class.t3lib_cache_exception_invaliddata.php
===================================================================
--- t3lib/cache/exception/class.t3lib_cache_exception_invaliddata.php	(revision 7827)
+++ t3lib/cache/exception/class.t3lib_cache_exception_invaliddata.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_exception_invaliddata.php 5165 2009-03-09 18:28:59Z ohader $
  */
 class t3lib_cache_exception_InvalidData extends t3lib_cache_Exception {
Index: t3lib/cache/exception/class.t3lib_cache_exception_nosuchcache.php
===================================================================
--- t3lib/cache/exception/class.t3lib_cache_exception_nosuchcache.php	(revision 7827)
+++ t3lib/cache/exception/class.t3lib_cache_exception_nosuchcache.php	(working copy)
@@ -30,6 +30,7 @@
  *
  * @package TYPO3
  * @subpackage t3lib_cache
+ * @api
  * @version $Id: class.t3lib_cache_exception_nosuchcache.php 5165 2009-03-09 18:28:59Z ohader $
  */
 class t3lib_cache_exception_NoSuchCache extends t3lib_cache_Exception {
Index: t3lib/cache/last_synched_revision
===================================================================
--- t3lib/cache/last_synched_revision	(revision 7827)
+++ t3lib/cache/last_synched_revision	(working copy)
@@ -1 +1 @@
-2953
\ No newline at end of file
+4443
