Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.780
diff -u -p -r1.780 system.module
--- modules/system/system.module	29 Aug 2009 05:46:04 -0000	1.780
+++ modules/system/system.module	31 Aug 2009 01:08:40 -0000
@@ -3078,6 +3078,27 @@ function system_retrieve_file($url, $des
  * Implement hook_page_alter().
  */
 function system_page_alter(&$page) {
+  // If no module has populated any region of the page, provide a fallback
+  // implementation which inserts the main page content into the "content"
+  // region. This allows the site to still be usable even if no modules that
+  // control page regions (for example, the Block module) are enabled.
+  // We only act when a quick check noticed the content region is empty.
+  if(empty($page['content'])) {
+    global $theme_key;
+    $region_filled = false;
+    $region_list = system_region_list($theme_key, REGIONS_VISIBLE);
+    reset($region_list); // Go to first element in array.
+    // Traverse the array until a non-empty visible region has been found.
+    while($region_filled = false && $region = each($region_list)) {
+      if(!empty($page[$region['key']])) {
+        $region_filled = true;
+      }
+    }
+    if ($region_filled == false) {
+      $page['content']['system_main'] = drupal_set_page_content();
+    }
+  }
+
   // Automatic cron runs.
   // @see system_run_cron_image()
   if (system_run_cron_image_access()) {
