Index: modules/block/block.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.module,v
retrieving revision 1.431
diff -u -p -r1.431 block.module
--- modules/block/block.module	28 Sep 2010 03:30:37 -0000	1.431
+++ modules/block/block.module	28 Sep 2010 15:48:50 -0000
@@ -428,10 +428,11 @@ function _block_rehash($theme = NULL) {
       if (!isset($block['weight'])) {
         $block['weight'] = 0;
       }
-      if (!empty($block['region']) && $block['region'] != BLOCK_REGION_NONE && !isset($regions[$block['region']])) {
+      // Blocks which are assigned to an invalid region inside a valid theme
+      // (for example, if the theme no longer defines the region the block was
+      // previously placed in) should be disabled.
+      if (!empty($block['region']) && $block['region'] != BLOCK_REGION_NONE && !empty($regions) && !isset($regions[$block['region']])) {
         drupal_set_message(t('The block %info was assigned to the invalid region %region and has been disabled.', array('%info' => $block['info'], '%region' => $block['region'])), 'warning');
-        // Disabled modules are moved into the BLOCK_REGION_NONE later so no
-        // need to move the bock to another region.
         $block['status'] = 0;
       }
       // Set region to none if not enabled and make sure status is set.
