Index: lib/Doctrine/ORM/Configuration.php
===================================================================
--- lib/Doctrine/ORM/Configuration.php	(revision 6579)
+++ lib/Doctrine/ORM/Configuration.php	(working copy)
@@ -53,12 +53,6 @@
             'autoGenerateProxyClasses' => true,
             'proxyNamespace' => null
         ));
-        
-        //TODO: Move this to client code to avoid unnecessary work when a different metadata
-        // driver is used.
-        $reader = new \Doctrine\Common\Annotations\AnnotationReader(new \Doctrine\Common\Cache\ArrayCache);
-        $reader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\');
-        $this->_attributes['metadataDriverImpl'] = new \Doctrine\ORM\Mapping\Driver\AnnotationDriver($reader);
     }
 
     /**
@@ -126,10 +120,16 @@
     /**
      * Gets the cache driver implementation that is used for the mapping metadata.
      *
-     * @return object
+     * @return \Doctrine\ORM\Mapping\Driver\AbstractFileDriver
      */
     public function getMetadataDriverImpl()
     {
+        if(!isset($this->_attributes['metadataDriverImpl'])) {
+            $reader = new \Doctrine\Common\Annotations\AnnotationReader(new \Doctrine\Common\Cache\ArrayCache);
+            $reader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\');
+            $this->_attributes['metadataDriverImpl'] = new \Doctrine\ORM\Mapping\Driver\AnnotationDriver($reader);
+        }
+
         return $this->_attributes['metadataDriverImpl'];
     }
 
Index: lib/Doctrine/ORM/Configuration.php
===================================================================
--- lib/Doctrine/ORM/Configuration.php	(revision 6579)
+++ lib/Doctrine/ORM/Configuration.php	(working copy)
@@ -53,12 +53,6 @@
             'autoGenerateProxyClasses' => true,
             'proxyNamespace' => null
         ));
-        
-        //TODO: Move this to client code to avoid unnecessary work when a different metadata
-        // driver is used.
-        $reader = new \Doctrine\Common\Annotations\AnnotationReader(new \Doctrine\Common\Cache\ArrayCache);
-        $reader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\');
-        $this->_attributes['metadataDriverImpl'] = new \Doctrine\ORM\Mapping\Driver\AnnotationDriver($reader);
     }
 
     /**
@@ -126,10 +120,16 @@
     /**
      * Gets the cache driver implementation that is used for the mapping metadata.
      *
-     * @return object
+     * @return \Doctrine\ORM\Mapping\Driver\AbstractFileDriver
      */
     public function getMetadataDriverImpl()
     {
+        if(!isset($this->_attributes['metadataDriverImpl'])) {
+            $reader = new \Doctrine\Common\Annotations\AnnotationReader(new \Doctrine\Common\Cache\ArrayCache);
+            $reader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\');
+            $this->_attributes['metadataDriverImpl'] = new \Doctrine\ORM\Mapping\Driver\AnnotationDriver($reader);
+        }
+
         return $this->_attributes['metadataDriverImpl'];
     }
 
