Index: modules/block/block.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.admin.inc,v
retrieving revision 1.91
diff -u -p -r1.91 block.admin.inc
--- modules/block/block.admin.inc	6 Nov 2010 23:24:33 -0000	1.91
+++ modules/block/block.admin.inc	9 Feb 2011 13:52:29 -0000
@@ -135,11 +135,13 @@ function block_admin_display_form($form,
       '#title' => t('Region for @block block', array('@block' => $block['info'])),
       '#options' => $block_regions,
     );
-    $form['blocks'][$key]['configure'] = array(
-      '#type' => 'link',
-      '#title' => t('configure'),
-      '#href' => 'admin/structure/block/manage/' . $block['module'] . '/' . $block['delta'] . '/configure',
-    );
+    if ($block['module'] != 'system' || $block['delta'] != 'main') {
+      $form['blocks'][$key]['configure'] = array(
+        '#type' => 'link',
+        '#title' => t('configure'),
+        '#href' => 'admin/structure/block/manage/' . $block['module'] . '/' . $block['delta'] . '/configure',
+      );
+    }
     if ($block['module'] == 'block') {
       $form['blocks'][$key]['delete'] = array(
         '#type' => 'link',
@@ -166,6 +168,20 @@ function block_admin_display_form($form,
 }
 
 /**
+ * Form validation handler for the block display form.
+ *
+ * @see block_admin_display_form()
+ * @see block_admin_display_form_submit()
+ */
+function block_admin_display_form_validate($form, &$form_state) {
+  foreach ($form_state['values']['blocks'] as $block) {
+    if ($block['module'] == 'system' && $block['delta'] == 'main' && $block['region'] == BLOCK_REGION_NONE) {
+      form_set_error('info', t('The "Main page content" block must not be disabled.'));
+    }
+  }
+}
+
+/**
  * Form submission handler for the main blocks administration form.
  *
  * @see block_admin_display_form()
