diff --git a/plugins/content_types/node_form_workflow.inc b/plugins/content_types/node_form_workflow.inc
new file mode 100644
index 0000000..596a5ec
--- /dev/null
+++ b/plugins/content_types/node_form_workflow.inc
@@ -0,0 +1,45 @@
+<?php
+if (module_exists('workflow')) {
+  /**
+   * Plugins are described by creating a $plugin array which will be used
+   * by the system that includes this file.
+   */
+  $plugin = array(
+    'single' => TRUE,
+    'icon' => 'icon_node_form.png',
+    'title' => t('Workflow'),
+    'description' => t('Workflow states.'),
+    'required context' => new ctools_context_required(t('Form'), 'node_form'),
+    'category' => t('Form'),
+  );
+}
+
+function workflow_node_form_workflow_content_type_render($subtype, $conf, $panel_args, &$context) {
+  $block = new stdClass();
+  $block->module = t('node_form');
+  $block->title = t('Workflow State');
+  $block->delta = 'workflow';
+
+  if (isset($context->form)) {
+    if (isset($context->form['workflow'])) {
+      $block->content['workflow'] = $context->form['workflow'][$context->form['#wf_options']['name']];
+      // Set access to false on the original rather than removing so that
+      // vertical tabs doesn't clone it. I think this is due to references.
+      $context->form['workflow']['#access'] = FALSE;
+    }
+  }
+  else {
+    $block->content = t('Workflow.');
+  }
+
+  return $block;
+}
+
+function workflow_node_form_workflow_content_type_admin_title($subtype, $conf, $context) {
+  return t('"@s" node form workflow', array('@s' => $context->identifier));
+}
+
+function workflow_node_form_workflow_content_type_edit_form($form, &$form_state) {
+  // provide a blank form so we have a place to have context setting.
+  return $form;
+}
diff --git a/workflow.module b/workflow.module
index 59f94ed..95acf23 100644
--- a/workflow.module
+++ b/workflow.module
@@ -1592,3 +1592,14 @@ function workflow_show_form($sid, $workflow, $choices) {
   }
   return FALSE;
 }
+
+/*
+ * Implements hook_ctools_plugin_directory -
+ * This lets ctools know to scan my module for a content_type plugin file
+ * Detailed docks in ctools/ctools.api.php
+ */
+function workflow_ctools_plugin_directory($owner, $plugin_type) {
+  if ($owner == 'ctools' && $plugin_type == 'content_types') {
+    return 'plugins/content_types';
+  }
+}
