diff --git a/modules/block/block.module b/modules/block/block.module
index c5e229b..704a1e4 100644
--- a/modules/block/block.module
+++ b/modules/block/block.module
@@ -612,7 +612,8 @@ function block_theme_initialize($theme) {
   $has_blocks = (bool) db_query_range('SELECT 1 FROM {block} WHERE theme = :theme', 0, 1, array(':theme' => $theme))->fetchField();
   if (!$has_blocks) {
     $default_theme = variable_get('theme_default', 'bartik');
-    $regions = system_region_list($theme);
+// Get a list of VISIBLE regions in the new theme to assign blocks based on their assignment in the current default theme.
+    $regions = system_region_list($theme, REGIONS_VISIBLE);
     $result = db_query("SELECT * FROM {block} WHERE theme = :theme", array(':theme' => $default_theme), array('fetch' => PDO::FETCH_ASSOC));
     foreach ($result as $block) {
       // If the region isn't supported by the theme, assign the block to the theme's default region.
