diff --git a/core/includes/Drupal/Context/ActiveContext.php b/core/includes/Drupal/Context/ActiveContext.php
new file mode 100644
index 0000000..0960fae
--- /dev/null
+++ b/core/includes/Drupal/Context/ActiveContext.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Drupal\Context;
+
+class ActiveContext {
+  static protected $activeContext;
+  static function set($context) {
+    self::$activeContext = $context;
+  }
+  static function get() {
+    return self::$activeContext;
+  }
+}
diff --git a/core/includes/Drupal/Context/Tracker.php b/core/includes/Drupal/Context/Tracker.php
index 42d6956..14b15c4 100644
--- a/core/includes/Drupal/Context/Tracker.php
+++ b/core/includes/Drupal/Context/Tracker.php
@@ -17,13 +17,6 @@ class Tracker {
   protected $context;
 
   /**
-   * The stack object to which the context object we're tracking is bound.
-   *
-   * @var Stack
-   */
-  protected $stack;
-
-  /**
    * Constructs a Tracker object.
    *
    * @param ContextInterface $context
@@ -31,14 +24,7 @@ class Tracker {
    */
   public function __construct(ContextInterface $context) {
     $this->context = $context;
-
-    // If the context object has not been bound to a stack, it won't work
-    // properly.  Still, we shouldn't fatal.
-    $stack = $this->context->getStack();
-    if (isset($stack)) {
-      $stack->push($this->context);
-      $this->stack = $stack;
-    }
+    ActiveContext::set($context);
   }
 
   /**
@@ -52,8 +38,9 @@ class Tracker {
    * has one hanging around somewhere.
    */
   public function __destruct() {
-    if ($this->stack) {
-      $this->stack->pop($this->context);
+    $context = ActiveContext::get();
+    if ($context->hasParent()) {
+      ActiveContext::set($context->getParent());
     }
   }
 }
diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index fb8fe5f..c00c6ca 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -2424,12 +2424,8 @@ function _drupal_bootstrap_variables() {
  * @see drupal_get_context();
  */
 function drupal_bootstrap_context($install = FALSE) {
-  // Initialize the context system (temporary version).
-  $stack = new \Drupal\Context\Stack;
-  drupal_get_context($stack);
-
   $context = new \Drupal\Context\Context;
-  $context->setStack($stack);
+  \Drupal\Context\ActiveContext::set($context);
 
   // Assuming we're answering a web request, there are a number of handlers
   // that we know we'll always want available. Don't bother with a hook for
@@ -2485,16 +2481,7 @@ function _drupal_bootstrap_page_header() {
  * @return DrupalContextInterface
  */
 function drupal_get_context(\Drupal\Context\Stack $new_stack = NULL) {
-  // This static property is infamous, but it's better here than in the OOP
-  // code, at least it does not taints the API.
-  static $stack;
-  if ($new_stack) {
-    $stack = $new_stack;
-  }
-
-  if (isset($stack)) {
-    return $stack->getActiveContext();
-  }
+  return \Drupal\Context\ActiveContext::get();
 }
 
 /**
diff --git a/core/modules/simpletest/tests/context.test b/core/modules/simpletest/tests/context.test
index af273a3..24fc63f 100644
--- a/core/modules/simpletest/tests/context.test
+++ b/core/modules/simpletest/tests/context.test
@@ -400,19 +400,16 @@ class ContextMockTestCase extends ContextTestCases {
    * Test access to the "active" context.
    */
   public function testActiveContext() {
-    $stack = new \Drupal\Context\Stack;
     $butler = new \Drupal\Context\Context;
-    $butler->setStack($stack);
-
     $t1 = $butler->lock();
     $b2 = $butler->addLayer();
     $t2 = $b2->lock();
 
-    $this->assertEqual($b2, $stack->getActiveContext(), t('Active context is correct when adding context objects.'));
+    $this->assertEqual($b2, \Drupal\Context\ActiveContext::get(), t('Active context is correct when adding context objects.'));
 
     unset($t2);
 
-    $this->assertEqual($butler, $stack->getActiveContext(), t('Active context is correct when removing context objects.'));
+    $this->assertEqual($butler, \Drupal\Context\ActiveContext::get(), t('Active context is correct when removing context objects.'));
   }
 
   /**
