<?php
/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link      http://github.com/zendframework/zf2 for the canonical source repository
 * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */

namespace Zend\Mvc\Service;

use Zend\Form\FormElementManager;
use Zend\ServiceManager\ServiceLocatorInterface;

class FormElementManagerFactory extends AbstractPluginManagerFactory
{
    const PLUGIN_MANAGER_CLASS = 'Zend\Form\FormElementManager';

    /**
     * Create and return the MVC controller plugin manager
     *
     * @param  ServiceLocatorInterface $serviceLocator
     * @return FormElementManager
     */
    public function createService(ServiceLocatorInterface $serviceLocator)
    {
        $plugins = parent::createService($serviceLocator);
        return $plugins;
    }
}

<?php
/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link      http://github.com/zendframework/zf2 for the canonical source repository
 * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */

namespace Zend\Mvc\Service;

use Zend\Form\Form;
use Zend\Form\FormElementManager;
use Zend\ServiceManager\ServiceLocatorInterface;

class FormElementManagerFactory extends AbstractPluginManagerFactory
{
    const PLUGIN_MANAGER_CLASS = 'Zend\Form\FormElementManager';

    /**
     * Create and return the MVC controller plugin manager
     *
     * @param  ServiceLocatorInterface $serviceLocator
     * @return FormElementManager
     */
    public function createService(ServiceLocatorInterface $serviceLocator)
    {
        $plugins = parent::createService($serviceLocator);
        if ($serviceLocator->has('Di')) {
            $di = $serviceLocator->get('Di');
            $im = $di->instanceManager();
            if (!$im->getTypePreferences('Zend\Form\FormInterface')) {
                $form = new Form;
                $im->setTypePreference('Zend\Form\FormInterface', array($form));
            }
            $plugins->addPeeringServiceManager($serviceLocator);
            $plugins->setRetrieveFromPeeringManagerFirst(true);
        }
        return $plugins;
    }
}

--- 
+++ 
@@ -9,7 +9,6 @@
 
 namespace Zend\Mvc\Service;
 
-use Zend\Form\Form;
 use Zend\Form\FormElementManager;
 use Zend\ServiceManager\ServiceLocatorInterface;
 
@@ -26,16 +25,6 @@
     public function createService(ServiceLocatorInterface $serviceLocator)
     {
         $plugins = parent::createService($serviceLocator);
-        if ($serviceLocator->has('Di')) {
-            $di = $serviceLocator->get('Di');
-            $im = $di->instanceManager();
-            if (!$im->getTypePreferences('Zend\Form\FormInterface')) {
-                $form = new Form;
-                $im->setTypePreference('Zend\Form\FormInterface', array($form));
-            }
-            $plugins->addPeeringServiceManager($serviceLocator);
-            $plugins->setRetrieveFromPeeringManagerFirst(true);
-        }
         return $plugins;
     }
 }
Revert "Fix conflict AbstractPluginManager::valdatePlugin with DiAbstractFactory"

This reverts commit 69dc3de5b09d625641a113ed81a8e44455c8d199.
