diff --git a/arguments/nid.inc b/arguments/nid.inc
index db9522b..7e3b85a 100644
--- a/arguments/nid.inc
+++ b/arguments/nid.inc
@@ -28,7 +28,7 @@ function panels_nid_panels_arguments() {
 function panels_nid_context($arg = NULL, $conf = NULL, $empty = FALSE) {
   // If unset it wants a generic, unfilled context.
   if ($empty) {
-    return panels_context_create_empty('node');
+    return panels_context_create_empty('node', $conf);
   }
 
   if (!is_numeric($arg)) {
@@ -44,7 +44,7 @@ function panels_nid_context($arg = NULL, $conf = NULL, $empty = FALSE) {
     return FALSE;
   }
 
-  return panels_context_create('node', $node);
+  return panels_context_create('node', $node, $conf);
 }
 
 /**
diff --git a/contexts/node.inc b/contexts/node.inc
index be48b17..eca7f6a 100644
--- a/contexts/node.inc
+++ b/contexts/node.inc
@@ -26,7 +26,15 @@ function panels_node_panels_contexts() {
  * are not always created from the UI.
  */
 function panels_context_create_node($empty, $data = NULL, $conf = FALSE) {
-  $context = new panels_context('node');
+  $types = array('node');
+  if (!empty($conf['types'])) {
+    foreach ($conf['types'] as $type) {
+      if ($type) {
+        $types[] = 'node-'. $type;
+      }
+    }
+  }
+  $context = new panels_context($types);
   $context->plugin = 'node';
 
   if ($empty) {
diff --git a/includes/plugins.inc b/includes/plugins.inc
index 7bd6f13..e4730dd 100644
--- a/includes/plugins.inc
+++ b/includes/plugins.inc
@@ -1101,9 +1101,9 @@ function panels_context_create($type, $data = NULL, $conf = FALSE) {
   }
 }
 
-function panels_context_create_empty($type) {
+function panels_context_create_empty($type, $conf = FALSE) {
   if ($function = panels_plugin_get_function('contexts', $type, 'context')) {
-    return $function(TRUE);
+    return $function(TRUE, NULL, $conf);
   }
 }
 
