diff --git a/modules/node.module b/modules/node.module
index 7cb9dd859d7ebbef575c1682140d7545f472555a..afcd770539b589dcf3d71a08bdaa1741bb144500 100644
--- a/modules/node.module
+++ b/modules/node.module
@@ -1611,6 +1611,14 @@ function node_object_prepare(&$node) {
  * Generate the node editing form.
  */
 function node_form($node) {
+  $form = node_form_array($node);
+  return drupal_get_form($node->type . '_node_form', $form, 'node_form');
+}
+
+/**
+* Generate the node editing form array.
+*/
+function node_form_array($node) {
   $op = isset($_POST['op']) ? $_POST['op'] : '';
 
   $node = (object)$node;
@@ -1691,7 +1699,7 @@ function node_form($node) {
 
   $form['#after_build'] = 'node_form_add_preview';
 
-  return drupal_get_form($node->type . '_node_form', $form, 'node_form');
+  return $form;
 }
 
 function node_form_add_preview($form, $edit) {
diff --git a/modules/node/node.module b/modules/node/node.module
index 7cb9dd859d7ebbef575c1682140d7545f472555a..afcd770539b589dcf3d71a08bdaa1741bb144500 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1611,6 +1611,14 @@ function node_object_prepare(&$node) {
  * Generate the node editing form.
  */
 function node_form($node) {
+  $form = node_form_array($node);
+  return drupal_get_form($node->type . '_node_form', $form, 'node_form');
+}
+
+/**
+* Generate the node editing form array.
+*/
+function node_form_array($node) {
   $op = isset($_POST['op']) ? $_POST['op'] : '';
 
   $node = (object)$node;
@@ -1691,7 +1699,7 @@ function node_form($node) {
 
   $form['#after_build'] = 'node_form_add_preview';
 
-  return drupal_get_form($node->type . '_node_form', $form, 'node_form');
+  return $form;
 }
 
 function node_form_add_preview($form, $edit) {