diff --git a/includes/node.inc b/includes/node.inc
index 4a2a77e..ca01c2c 100644
--- a/includes/node.inc
+++ b/includes/node.inc
@@ -38,10 +38,26 @@ function panelizer_load_node_panelizer($node, $default_anyway = FALSE) {
     return FALSE;
   }
 
+  return panelizer_clone_node_panelizer($panelizer, $node->nid);
+}
+
+/**
+ * Helper function to clone a node's panelizer object and the panels display.
+ *
+ * @param stdClass $panelizer
+ *   The fully-loaded panelizer object for a given node.
+ * @param integer $nid
+ *   The nid to use for the cloned panelizer.
+ * @return stdClass
+ *   A cloned and fully-loaded panelizer object.
+ */
+function panelizer_clone_node_panelizer($panelizer, $nid) {
+  $panelizer_clone = drupal_clone($panelizer);
+
   // To ensure this saves properly later, we need to scrub out the data that
   // is specific to the default.
-  unset($panelizer->name);
-  unset($panelizer->title);
+  unset($panelizer_clone->name);
+  unset($panelizer_clone->title);
   $original_display = panelizer_load_display($panelizer);
 
   // In order to ensure we don't actually use and modify the default display,
@@ -51,12 +67,12 @@ function panelizer_load_node_panelizer($node, $default_anyway = FALSE) {
   eval($code);
   ob_end_clean();
 
-  $panelizer->display = $display;
-  $panelizer->did = NULL;
-  $panelizer->nid = $node->nid;
-  $panelizer->new = TRUE;
+  $panelizer_clone->display = $display;
+  $panelizer_clone->did = NULL;
+  $panelizer_clone->nid = $nid;
+  $panelizer_clone->new = TRUE;
 
-  return $panelizer;
+  return $panelizer_clone;
 }
 
 /**
diff --git a/panelizer.module b/panelizer.module
index e69bead..cf982d6 100644
--- a/panelizer.module
+++ b/panelizer.module
@@ -276,6 +276,9 @@ function panelizer_nodeapi(&$node, $op) {
     case 'delete':
       return panelizer_node_delete($node);
 
+    case 'insert':
+      return panelizer_node_insert($node);
+
   }
 }
 
@@ -288,6 +291,19 @@ function panelizer_node_delete($node) {
   panelizer_delete_node_panelizer($panelizer);
 }
 
+/**
+ * Implements hook_nodeapi() for delete (D7's hook_node_insert()).
+ */
+function panelizer_node_insert($node) {
+  if (!empty($node->clone_from_original_nid)) {
+    $original_node = node_load($node->clone_from_original_nid);
+    ctools_include('node', 'panelizer');
+    $original_panelizer = panelizer_load_node_panelizer($original_node);
+    $cloned_panelizer = panelizer_clone_node_panelizer($original_panelizer, $node->nid);
+    panelizer_save_node_panelizer($cloned_panelizer);
+  }
+}
+
 
 // ---------------------------------------------------------------------------
 // Panelizer object access routines
