diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index 0b6ca26..c5220af 100644
--- a/core/modules/block/block.module
+++ b/core/modules/block/block.module
@@ -126,7 +126,13 @@ function block_theme_initialize($theme) {
       // If the region isn't supported by the theme, assign the block to the
       // theme's default region.
       if (!isset($regions[$block->getRegion()])) {
+        $info = system_get_info('theme', $theme);
+        if (isset($info['block_default_region'], $regions[$info['block_default_region']])) {
+        $block->setRegion($info['block_default_region']);
+        }
+        else {
         $block->setRegion(system_default_region($theme));
+        }
       }
       $block->save();
     }
