Index: panels_node/panels_node.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/panels_node/panels_node.install,v
retrieving revision 1.3.4.1
diff -u -r1.3.4.1 panels_node.install
--- panels_node/panels_node.install	14 Feb 2009 19:36:17 -0000	1.3.4.1
+++ panels_node/panels_node.install	13 Jul 2010 18:24:47 -0000
@@ -31,6 +31,10 @@
         'type' => 'int',
         'not null' => TRUE,
       ),
+      'pipeline' => array(
+        'type' => 'varchar',
+        'length' => '255',
+      ),
     ),
     'primary key' => array('did'),
   );
@@ -54,3 +58,11 @@
   db_query("DELETE FROM {node} WHERE type = 'panel'");
   drupal_uninstall_schema('panels_node');
 }
+
+/**
+ * Implementation of hook_update to handle adding a pipeline 
+ */
+function panels_node_update_6001() {
+  $ret[] = update_sql("ALTER TABLE {panels_node} ADD COLUMN pipeline varchar(255)");
+  return $ret;
+}
\ No newline at end of file
Index: panels_node/panels_node.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/panels_node/panels_node.module,v
retrieving revision 1.5.2.19
diff -u -r1.5.2.19 panels_node.module
--- panels_node/panels_node.module	22 Jun 2010 15:54:24 -0000	1.5.2.19
+++ panels_node/panels_node.module	13 Jul 2010 18:24:47 -0000
@@ -129,6 +129,7 @@
  */
 function panels_node_form(&$node, &$param) {
   $form['panels_node']['#tree'] = TRUE;
+  ctools_include('plugins', 'panels');
   if (empty($node->nid)) {
     // Grab our selected layout from the $node, If it doesn't exist, try arg(3)
     // and if that doesn't work present them with a list to pick from.
@@ -139,7 +140,6 @@
       return drupal_goto('node/add/panel/choose-layout', $opts);
     }
 
-    ctools_include('plugins', 'panels');
     $layout = panels_get_layout($panel_layout);
     if (empty($layout)) {
       return drupal_not_found();
@@ -184,6 +184,35 @@
     '#description' => t('An ID that can be used by CSS to style the panel.'),
     '#default_value' => $css_id,
   );
+  
+  // Support for different rendering pipelines
+  // Mostly borrowed from panel_context.inc
+  $pipelines = panels_get_renderer_pipelines();
+  
+  // If there are no pipelines, that probably means we're operating in
+  // legacy mode.
+  if (empty($pipelines)) {
+    // We retain the original pipeline so we don't wreck things by installing
+    // old modules.
+    $form['panels_node']['pipeline'] = array(
+      '#type' => 'value',
+      '#value' => $node->panels_node['pipeline'],
+    );
+  }
+  else {
+    $options = array();
+    foreach ($pipelines as $name => $pipeline) {
+      $options[$name] = check_plain($pipeline->admin_title) . '<div class="description">' . check_plain($pipeline->admin_description) . '</div>';
+    }
+
+    $form['panels_node']['pipeline'] = array(
+      '#type' => 'radios',
+      '#options' => $options,
+      '#title' => t('Renderer'),
+      '#default_value' => $node->panels_node['pipeline'] ? $node->panels_node['pipeline'] : 'standard',
+    );
+  }
+  
   return $form;
 }
 
@@ -228,7 +257,7 @@
   panels_save_display($display);
   $css_id = $node->panels_node['css_id'];
 
-  db_query("INSERT INTO {panels_node} (nid, did, css_id) VALUES (%d, %d, '%s')", $node->nid, $display->did, $node->panels_node['css_id']);
+  db_query("INSERT INTO {panels_node} (nid, did, css_id, pipeline) VALUES (%d, %d, '%s', '%s')", $node->nid, $display->did, $node->panels_node['css_id'], $node->panels_node['pipeline']);
 
   $node->panels_node['did'] = $display->did;
 }
@@ -247,7 +276,7 @@
  * Implementation of hook_update().
  */
 function panels_node_update($node) {
-  db_query("UPDATE {panels_node} SET css_id = '%s' WHERE nid = %d", $node->panels_node['css_id'], $node->nid);
+  db_query("UPDATE {panels_node} SET css_id = '%s', pipeline = '%s' WHERE nid = %d", $node->panels_node['css_id'], $node->panels_node['pipeline'], $node->nid);
 }
 
 /**
@@ -276,9 +305,8 @@
       $display->css_id = $node->panels_node['css_id'];
       // TODO: Find a way to make sure this can't node_view.
       $display->context = panels_node_get_context($node);
-
       $node->content['body'] = array(
-        '#value' => panels_render_display($display),
+        '#value' => panels_render_display($display, $node->panels_node['pipeline']),
         '#weight' => 0,
       );
     }