diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index 0b6ca26..fb5c2e0 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()])) {
-        $block->setRegion(system_default_region($theme));
+        $default_block = system_get_info('theme', $theme)['block_default_region'];
+        if (isset($default_block) && isset($regions[$default_block])) {
+          $block->setRegion($default_block);
+        }
+        else {
+          $block->setRegion(system_default_region($theme));
+        }
       }
       $block->save();
     }
