diff --git a/includes/Drupal/Context/ContextStack.php b/includes/Drupal/Context/ContextStack.php
index 4aff450..0fa3329 100644
--- a/includes/Drupal/Context/ContextStack.php
+++ b/includes/Drupal/Context/ContextStack.php
@@ -28,7 +28,7 @@ class ContextStack {
    */
   public function pop(ContextInterface $context) {
     $pos = array_search(spl_object_hash($context), array_keys($this->stack));
-    if (FALSE !== $pos) {
+    if (FALSE !== $pos && count($this->stack) > 1) {
       $this->stack = array_slice($this->stack, 0, $pos, TRUE);
     }
     else {
diff --git a/modules/simpletest/tests/context.test b/modules/simpletest/tests/context.test
index ddf56eb..47ea97b 100644
--- a/modules/simpletest/tests/context.test
+++ b/modules/simpletest/tests/context.test
@@ -307,6 +307,23 @@ class ContextMockTestCase extends ContextTestCases {
   }
 
   /**
+   * Test access to the "active" context at the global level.
+   */
+  public function testGlobalActiveContext() {
+    $butler = drupal_get_context();
+
+    $t1 = $butler->lock();
+    $b2 = $butler->addLayer();
+    $t2 = $b2->lock();
+
+    $this->assertEqual($b2, drupal_get_context(), t('Active global context is correct when adding context objects.'));
+
+    unset($t2);
+
+    $this->assertEqual($butler, drupal_get_context(), t('Active global context is correct when removing context objects.'));
+  }
+
+  /**
    * Test that cotext values are removed from the stack properly.
    */
   public function testGarbageCollection() {
