diff --git a/core/core.services.yml b/core/core.services.yml
index d3f91ee..49f394f 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -399,6 +399,12 @@ services:
   http_kernel.basic:
     class: Symfony\Component\HttpKernel\HttpKernel
     arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack']
+  http_middleware.demo:
+    class: Drupal\Core\StackMiddleware\Demo
+    tags:
+      - { name: http_middleware}
+    calls:
+      - [setContainer, ['@service_container']]
   http_middleware.reverse_proxy:
     class: Drupal\Core\StackMiddleware\ReverseProxyMiddleware
     arguments: ['@settings']
diff --git a/core/lib/Drupal/Core/StackMiddleware/Demo.php b/core/lib/Drupal/Core/StackMiddleware/Demo.php
new file mode 100644
index 0000000..9df551c
--- /dev/null
+++ b/core/lib/Drupal/Core/StackMiddleware/Demo.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * @file
+ * Contains \Drupal\Core\StackMiddleware\Demo
+ */
+
+namespace Drupal\Core\StackMiddleware;
+
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\DependencyInjection\ContainerAwareTrait;
+
+/**
+ * Tests service construction including method calls.
+ */
+class Demo implements HttpKernelInterface {
+
+  use ContainerAwareTrait;
+
+  /**
+   * The decorated kernel.
+   *
+   * @var \Symfony\Component\HttpKernel\HttpKernelInterface
+   */
+  protected $httpKernel;
+
+  /**
+   * Constructs a Demo object.
+   *
+   * @param \Symfony\Component\HttpKernel\HttpKernelInterface $http_kernel
+   *   The decorated kernel.
+   */
+  public function __construct(HttpKernelInterface $http_kernel) {
+    $this->httpKernel = $http_kernel;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = TRUE) {
+    if (!isset($this->container)) {
+      throw new \Exception('Container is missing!');
+    }
+
+    return $this->httpKernel->handle($request, $type, $catch);
+  }
+
+}
