diff --git a/src/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php b/src/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php
index 2044932..5dea312 100644
--- a/src/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php
+++ b/src/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php
@@ -162,6 +162,14 @@ class ClassMetadataFactory implements ClassMetadataFactoryInterface
                     return $this->loadedMetadata[$realClassName];
                 }
             }
+			
+			$reflection = new \ReflectionClass($className);
+			$isProxy = $reflection->implementsInterface('Doctrine\ORM\Proxy\Proxy');
+
+			if ($isProxy) {
+				$realClassName = $reflection->getParentClass()
+						->getName();
+			}
 
             if ($this->cacheDriver) {
                 if (($cached = $this->cacheDriver->fetch("$realClassName\$CLASSMETADATA")) !== false) {
@@ -259,7 +267,7 @@ class ClassMetadataFactory implements ClassMetadataFactoryInterface
                 }
                 continue;
             }
-
+			
             $class = $this->newClassMetadataInstance($className);
 
             if ($parent) {
