diff --git a/includes/theme.inc b/includes/theme.inc
index 46afc94242e70750789fb02a9e932b904d38a2f3..522c1db29fdd2c7fe525ff664c9db23d50356e00 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -1995,65 +1995,3 @@ function template_page_suggestions($args) {
   return $suggestions;
 }
 
-/**
- * Process variables for node.tpl.php
- *
- * Most themes utilize their own copy of node.tpl.php. The default is located
- * inside "modules/node/node.tpl.php". Look in there for the full list of
- * variables.
- *
- * The $variables array contains the following arguments:
- * - $node
- * - $teaser
- * - $page
- *
- * @see node.tpl.php
- */
-function template_preprocess_node(&$variables) {
-  $variables['teaser'] = $variables['elements']['#teaser'];
-  $variables['node'] = $variables['elements']['#node'];
-  $node = $variables['node'];
-
-  $variables['date']      = format_date($node->created);
-  $variables['name']      = theme('username', $node);
-  $variables['node_url']  = url('node/' . $node->nid);
-  $variables['title']     = check_plain($node->title);
-  $variables['page']      = (bool)menu_get_object();
-
-  if ($node->build_mode == NODE_BUILD_PREVIEW) {
-    unset($node->content['links']);
-  }
-
-  // Render taxonomy links separately.
-  $variables['terms']     = !empty($node->content['links']['terms']) ? drupal_render($node->content['links']['terms']) : '';
-
-  // Render all remaining node links.
-  $variables['links']     = !empty($node->content['links']) ? drupal_render($node->content['links']) : '';
-
-  // Render any comments.
-  $variables['comments']  = !empty($node->content['comments']) ? drupal_render($node->content['comments']) : '';
-
-  // Render the rest of the node into $content.
-  $variables['content'] = drupal_render($node->content);
-
-  // Flatten the node object's member fields.
-  $variables = array_merge((array)$node, $variables);
-
-  // Display post information only on certain node types.
-  if (variable_get('node_submitted_' . $node->type, TRUE)) {
-    $variables['submitted'] = theme('node_submitted', $node);
-    $variables['picture'] = theme_get_setting('toggle_node_user_picture') ? theme('user_picture', $node) : '';
-  }
-  else {
-    $variables['submitted'] = '';
-    $variables['picture'] = '';
-  }
-  // Clean up name so there are no underscores.
-  $variables['template_files'][] = 'node-' . str_replace('_', '-', $node->type);
-  $variables['template_files'][] = 'node-' . $node->nid;
-
-  // Add $FIELD_NAME_rendered variables for fields.
-  drupal_function_exists('field_attach_preprocess');
-  $variables += field_attach_preprocess('node', $node);
-}
-
diff --git a/modules/node/node.module b/modules/node/node.module
index cf0271f171ae240f4692344030cc5632e47aa5aa..368896e4c43f1a958955a9858551f05421672714 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1334,6 +1334,68 @@ function node_show($node, $message = FALSE) {
   return node_build_multiple(array($node), FALSE);
 }
 
+/**
+ * Process variables for node.tpl.php
+ *
+ * Most themes utilize their own copy of node.tpl.php. The default is located
+ * inside "modules/node/node.tpl.php". Look in there for the full list of
+ * variables.
+ *
+ * The $variables array contains the following arguments:
+ * - $node
+ * - $teaser
+ * - $page
+ *
+ * @see node.tpl.php
+ */
+function template_preprocess_node(&$variables) {
+  $variables['teaser'] = $variables['elements']['#teaser'];
+  $variables['node'] = $variables['elements']['#node'];
+  $node = $variables['node'];
+
+  $variables['date']      = format_date($node->created);
+  $variables['name']      = theme('username', $node);
+  $variables['node_url']  = url('node/' . $node->nid);
+  $variables['title']     = check_plain($node->title);
+  $variables['page']      = (bool)menu_get_object();
+
+  if ($node->build_mode == NODE_BUILD_PREVIEW) {
+    unset($node->content['links']);
+  }
+
+  // Render taxonomy links separately.
+  $variables['terms']     = !empty($node->content['links']['terms']) ? drupal_render($node->content['links']['terms']) : '';
+
+  // Render all remaining node links.
+  $variables['links']     = !empty($node->content['links']) ? drupal_render($node->content['links']) : '';
+
+  // Render any comments.
+  $variables['comments']  = !empty($node->content['comments']) ? drupal_render($node->content['comments']) : '';
+
+  // Render the rest of the node into $content.
+  $variables['content'] = drupal_render($node->content);
+
+  // Flatten the node object's member fields.
+  $variables = array_merge((array)$node, $variables);
+
+  // Display post information only on certain node types.
+  if (variable_get('node_submitted_' . $node->type, TRUE)) {
+    $variables['submitted'] = theme('node_submitted', $node);
+    $variables['picture'] = theme_get_setting('toggle_node_user_picture') ? theme('user_picture', $node) : '';
+  }
+  else {
+    $variables['submitted'] = '';
+    $variables['picture'] = '';
+  }
+  // Clean up name so there are no underscores.
+  $variables['template_files'][] = 'node-' . str_replace('_', '-', $node->type);
+  $variables['template_files'][] = 'node-' . $node->nid;
+
+  // Add $FIELD_NAME_rendered variables for fields.
+  drupal_function_exists('field_attach_preprocess');
+  $variables += field_attach_preprocess('node', $node);
+}
+
 /**
  * Theme a log message.
  *