diff --git a/includes/common.inc b/includes/common.inc
index fa6eae77cba7eb7973cceeafd6ae6f705fc12f43..2e8ef30108b949a9c4ccdffe2dbd20b61d19a10f 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -3631,10 +3631,6 @@ function drupal_common_theme() {
       'arguments' => array('title' => NULL, 'content' => NULL, 'region' => 'main'),
       'template' => 'box',
     ),
-    'block' => array(
-      'arguments' => array('block' => NULL),
-      'template' => 'block',
-    ),
     'mark' => array(
       'arguments' => array('type' => MARK_NEW),
     ),
diff --git a/includes/theme.inc b/includes/theme.inc
index 0e001863f23902f54a957c36ff5e03121b08c2e5..4189cdaed2f730be1d56eb254efdae2ddcb7a0e6 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -2027,35 +2027,3 @@ function template_preprocess_node(&$variables) {
   $variables += field_attach_preprocess('node', $node);
 }
 
-/**
- * Process variables for block.tpl.php
- *
- * Prepare the values passed to the theme_block function to be passed
- * into a pluggable template engine. Uses block properties to generate a
- * series of template file suggestions. If none are found, the default
- * block.tpl.php is used.
- *
- * Most themes utilize their own copy of block.tpl.php. The default is located
- * inside "modules/system/block.tpl.php". Look in there for the full list of
- * variables.
- *
- * The $variables array contains the following arguments:
- * - $block
- *
- * @see block.tpl.php
- */
-function template_preprocess_block(&$variables) {
-  static $block_counter = array();
-  $variables['block'] = $variables['block']['#block'];
-  // All blocks get an independent counter for each region.
-  if (!isset($block_counter[$variables['block']->region])) {
-    $block_counter[$variables['block']->region] = 1;
-  }
-  // Same with zebra striping.
-  $variables['block_zebra'] = ($block_counter[$variables['block']->region] % 2) ? 'odd' : 'even';
-  $variables['block_id'] = $block_counter[$variables['block']->region]++;
-
-  $variables['template_files'][] = 'block-' . $variables['block']->region;
-  $variables['template_files'][] = 'block-' . $variables['block']->module;
-  $variables['template_files'][] = 'block-' . $variables['block']->module . '-' . $variables['block']->delta;
-}
diff --git a/modules/block/block.module b/modules/block/block.module
index 727f526b5c636705576549d3676883092fbbc314..a933fbf307353467202b043dffac096ff5a080d3 100644
--- a/modules/block/block.module
+++ b/modules/block/block.module
@@ -92,6 +92,10 @@ function block_help($path, $arg) {
  */
 function block_theme() {
   return array(
+    'block' => array(
+      'arguments' => array('block' => NULL),
+      'template' => 'block',
+    ),  
     'block_admin_display_form' => array(
       'template' => 'block-admin-display-form',
       'file' => 'block.admin.inc',
@@ -728,3 +732,36 @@ function _block_get_cache_id($block) {
 function block_flush_caches() {
   return array('cache_block');
 }
+
+/**
+ * Process variables for block.tpl.php
+ *
+ * Prepare the values passed to the theme_block function to be passed
+ * into a pluggable template engine. Uses block properties to generate a
+ * series of template file suggestions. If none are found, the default
+ * block.tpl.php is used.
+ *
+ * Most themes utilize their own copy of block.tpl.php. The default is located
+ * inside "modules/block/block.tpl.php". Look in there for the full list of
+ * variables.
+ *
+ * The $variables array contains the following arguments:
+ * - $block
+ *
+ * @see block.tpl.php
+ */
+function template_preprocess_block(&$variables) {
+  static $block_counter = array();
+  $variables['block'] = $variables['block']['#block'];
+  // All blocks get an independent counter for each region.
+  if (!isset($block_counter[$variables['block']->region])) {
+    $block_counter[$variables['block']->region] = 1;
+  }
+  // Same with zebra striping.
+  $variables['block_zebra'] = ($block_counter[$variables['block']->region] % 2) ? 'odd' : 'even';
+  $variables['block_id'] = $block_counter[$variables['block']->region]++;
+
+  $variables['template_files'][] = 'block-' . $variables['block']->region;
+  $variables['template_files'][] = 'block-' . $variables['block']->module;
+  $variables['template_files'][] = 'block-' . $variables['block']->module . '-' . $variables['block']->delta;
+}
\ No newline at end of file
diff --git a/modules/system/block.tpl.php b/modules/block/block.tpl.php
similarity index 100%
rename from modules/system/block.tpl.php
rename to modules/block/block.tpl.php