diff --git a/core/lib/Drupal/Core/CoreBundle.php b/core/lib/Drupal/Core/CoreBundle.php
index 8ef7a9b..2906b6f 100644
--- a/core/lib/Drupal/Core/CoreBundle.php
+++ b/core/lib/Drupal/Core/CoreBundle.php
@@ -223,6 +223,9 @@ public function build(ContainerBuilder $container) {
       ->addTag('event_subscriber');
     $container->register('config_global_override_subscriber', 'Drupal\Core\EventSubscriber\ConfigGlobalOverrideSubscriber')
       ->addTag('event_subscriber');
+    $container->register('session_listener', 'Drupal\Core\EventSubscriber\SessionListener')
+      ->addArgument(new Reference('service_container'))
+      ->addTag('event_subscriber');
 
     $container->register('exception_controller', 'Drupal\Core\ExceptionController')
       ->addArgument(new Reference('content_negotiation'))
diff --git a/core/lib/Drupal/Core/EventSubscriber/SessionListener.php b/core/lib/Drupal/Core/EventSubscriber/SessionListener.php
new file mode 100644
index 0000000..7d69c2d
--- /dev/null
+++ b/core/lib/Drupal/Core/EventSubscriber/SessionListener.php
@@ -0,0 +1,73 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+/**
+ * This file is a part of Symfony FrameworkBundle and is registered at:
+ * namespace Symfony\Bundle\FrameworkBundle\EventListener;
+ *
+ * We're using this because it provides a nice solution for initializing a
+ * session.  If we were to u
+ */
+
+/**
+ * @file
+ * Definition of Drupal\Core\EventSubscriber\SessionListener.
+ */
+
+namespace Drupal\Core\EventSubscriber;
+
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Event\GetResponseEvent;
+use Symfony\Component\HttpKernel\KernelEvents;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+/**
+ * Sets the session in the request.
+ *
+ * This will also start the session if it was already started during a previous
+ * request.
+ *
+ * @author Johannes M. Schmitt <schmittjoh@gmail.com>
+ */
+class SessionListener implements EventSubscriberInterface
+{
+  /**
+   * @var ContainerInterface
+   */
+  private $container;
+
+  public function __construct(ContainerInterface $container)
+  {
+    $this->container = $container;
+  }
+
+  public function onKernelRequest(GetResponseEvent $event)
+  {
+    if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
+      return;
+    }
+
+    $request = $event->getRequest();
+    if (!$this->container->has('session') || $request->hasSession()) {
+      return;
+    }
+
+    $request->setSession($this->container->get('session'));
+  }
+
+  public static function getSubscribedEvents()
+  {
+    return array(
+      KernelEvents::REQUEST => array('onKernelRequest', 128),
+    );
+  }
+}
\ No newline at end of file
