Index: modules/block/block.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.admin.inc,v
retrieving revision 1.19
diff -u -p -r1.19 block.admin.inc
--- modules/block/block.admin.inc	16 Jul 2008 21:59:25 -0000	1.19
+++ modules/block/block.admin.inc	10 Sep 2008 09:12:52 -0000
@@ -155,14 +155,39 @@ function block_admin_configure(&$form_st
     '#title' => t('Block specific settings'),
     '#collapsible' => TRUE,
   );
-  $form['block_settings']['title'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Block title'),
-    '#maxlength' => 64,
-    '#description' => $module == 'block' ? t('The title of the block as shown to the user.') : t('Override the default title for the block. Use <em>&lt;none&gt;</em> to display no title, or leave blank to use the default block title.'),
-    '#default_value' => $edit['title'],
-    '#weight' => -18,
-  );
+  if ($module == 'block') {
+  	$form['block_settings']['title'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Block title'),
+      '#maxlength' => 64,
+      '#description' => t('The title of the block as shown to the user.'),
+      '#default_value' => $edit['title'],
+      '#weight' => -18,
+    );
+  }
+  else {
+    drupal_add_js(drupal_get_path('module', 'block') . '/block.js');
+    
+    $form['block_settings']['title_override'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Override block title'),
+      '#default_value' => !empty($edit['title']),
+      '#weight' => -19,
+    );
+    $css_class = 'block-new-title';
+    if (empty($edit['title'])) {
+      $css_class .= ' js-hide';
+    }
+    $form['block_settings']['title'] = array(
+      '#type' => 'textfield',
+      '#maxlength' => 64,
+      '#description' => t('The new title of the block as shown to the user.'),
+      '#default_value' => $edit['title'] != '<none>' ? $edit['title'] : '',
+      '#weight' => -18,
+      '#prefix' => '<div class="' . $css_class . '">',
+      '#suffix' => '</div>',
+    );
+  }
 
   // Module-specific block configurations.
   if ($settings = module_invoke($module, 'block', 'configure', $delta)) {
@@ -271,6 +296,19 @@ function block_admin_configure_validate(
 
 function block_admin_configure_submit($form, &$form_state) {
   if (!form_get_errors()) {
+    
+    // Check if the block title should be overridden.
+    if ($form_state['values']['title_override']) {
+      // Replace an overridden empty title with the token '<none>'.
+      if ($form_state['values']['title'] === '') {
+        $form_state['values']['title'] = '<none>';
+      }
+    }
+    else {
+      // Use default block title.
+      $form_state['values']['title'] = '';
+    }
+    
     db_query("UPDATE {blocks} SET visibility = %d, pages = '%s', custom = %d, title = '%s' WHERE module = '%s' AND delta = '%s'", $form_state['values']['visibility'], trim($form_state['values']['pages']), $form_state['values']['custom'], $form_state['values']['title'], $form_state['values']['module'], $form_state['values']['delta']);
     db_query("DELETE FROM {blocks_roles} WHERE module = '%s' AND delta = '%s'", $form_state['values']['module'], $form_state['values']['delta']);
     foreach (array_filter($form_state['values']['roles']) as $rid) {
Index: modules/block/block.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.js,v
retrieving revision 1.3
diff -u -p -r1.3 block.js
--- modules/block/block.js	15 May 2008 21:30:02 -0000	1.3
+++ modules/block/block.js	10 Sep 2008 09:12:52 -0000
@@ -1,5 +1,12 @@
 // $Id: block.js,v 1.3 2008/05/15 21:30:02 dries Exp $
 
+
+Drupal.behaviors.blockOverrideTitle = function (context) {
+  $('div#edit-title-override-wrapper input[type=checkbox]:not(.blockOverride-processed)', context).addClass('blockOverride-processed').click(function () {
+    $('div.block-new-title', context)[$(this).attr('checked') ? 'show' : 'hide']();
+  });
+};
+
 /**
  * Move a block in the blocks table from one region to another via select list.
  *
