diff --git a/includes/context.inc b/includes/context.inc
index a532f65..22a3ceb 100644
--- a/includes/context.inc
+++ b/includes/context.inc
@@ -1093,11 +1093,13 @@ function ctools_context_get_context_from_context($context, $type = 'context', $a
       unset($context['context_settings']);
     }
 
+    $buildemptycontext = $type == 'requiredcontext';
     if (isset($argument) && isset($plugin['placeholder name'])) {
       $context[$plugin['placeholder name']] = $argument;
+      $buildemptycontext = FALSE;
     }
 
-    $return = $function($type == 'requiredcontext', $context, TRUE, $plugin);
+    $return = $function($buildemptycontext, $context, TRUE, $plugin);
     if ($return) {
       $return->identifier = $context['identifier'];
       $return->page_title = isset($context['title']) ? $context['title'] : '';
diff --git a/tests/context.test b/tests/context.test
index 4381b64..48e11ca 100644
--- a/tests/context.test
+++ b/tests/context.test
@@ -1,17 +1,17 @@
 <?php
 
 /**
- * Test the keyword substitution functionality.
+ * Test the context system.
  */
-class CtoolsContextKeywordsSubstitutionTestCase extends DrupalWebTestCase {
+class CtoolsContextTestCase extends DrupalWebTestCase {
 
   /**
    * {@inheritDoc}
    */
   public static function getInfo() {
     return array(
-      'name' => 'Keywords substitution',
-      'description' => 'Verify that keywords are properly replaced with data.',
+      'name' => 'CTools context tests',
+      'description' => 'Tests concerning the context system.',
       'group' => 'ctools',
       'dependencies' => array('ctools'),
     );
@@ -98,4 +98,20 @@ class CtoolsContextKeywordsSubstitutionTestCase extends DrupalWebTestCase {
     }
   }
 
+  /**
+   * Test building a context from a argument context.
+   */
+  public function testContextFromContext() {
+    $node = $this->drupalCreateNode();
+    $context_info = array(
+      'name' => 'entity:node',
+      'context_settings' => array(),
+      'keyword' => 'node',
+      'identifier' => 'Node being viewed',
+    );
+    $context = ctools_context_get_context_from_context($context_info, 'requiredcontext', $node->nid);
+    $this->assertNotNull($context, t('The context should exist'));
+    $this->assertNotNull($context->data, t('The context must data'));
+    $this->assertEqual($node->nid, $context->data->nid, t('The context must contain the node for which it was created'));
+  }
 }
