=== modified file 'modules/block/block.module'
--- modules/block/block.module	2007-06-22 16:08:56 +0000
+++ modules/block/block.module	2007-06-24 17:41:22 +0000
@@ -561,24 +561,29 @@ function block_add_block_form_submit($fo
 /**
  * Menu callback; confirm deletion of custom blocks.
  */
-function block_box_delete($bid = 0) {
+function block_box_delete(&$form_state, $bid = 0) {
   $box = block_box_get($bid);
-  $form['info'] = array('#type' => 'hidden', '#value' => $box['info'] ? $box['info'] : $box['title']);
-  $form['bid'] = array('#type' => 'hidden', '#value' => $bid);
+  $info = $box['info'] ? $box['info'] : $box['title'];
 
-  return confirm_form($form, t('Are you sure you want to delete the block %name?', array('%name' => $box['info'])), 'admin/build/block');
+  drupal_delete_initiate('block', $bid);
+  drupal_delete_add_callback(array('block_box_delete_post' => array($info)));
+  drupal_delete_add_query('DELETE FROM {boxes} WHERE bid = %d', $bid);
+  drupal_delete_add_query("DELETE FROM {blocks} WHERE module = 'block' AND delta = %d", $bid);
+
+  return drupal_delete_confirm(
+    array(
+      'question' => t('Are you sure you want to delete the block %name?', array('%name' => $info)),
+      'destination' => 'admin/build/block',
+    )
+  );
 }
 
 /**
- * Deletion of custom blocks.
+ * Post-deletion operations for custom block deletions.
  */
-function block_box_delete_submit($form, &$form_state) {
-  db_query('DELETE FROM {boxes} WHERE bid = %d', $form_state['values']['bid']);
-  db_query("DELETE FROM {blocks} WHERE module = 'block' AND delta = %d", $form_state['values']['bid']);
-  drupal_set_message(t('The block %name has been removed.', array('%name' => $form_state['values']['info'])));
+function block_box_delete_post($info) {
+  drupal_set_message(t('The block %name has been removed.', array('%name' => $info)));
   cache_clear_all();
-  $form_state['redirect'] = 'admin/build/block';
-  return;
 };
 
 /**

