Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.402
diff -u -r1.402 system.module
--- modules/system/system.module	21 Nov 2006 20:55:35 -0000	1.402
+++ modules/system/system.module	23 Nov 2006 21:24:09 -0000
@@ -2069,8 +2069,9 @@
  * @param $question
  *   The question to ask the user (e.g. "Are you sure you want to delete the
  *   block <em>foo</em>?").
- * @param $destination
+ * @param $path
  *   The page to go to if the user denies the action.
+ *   Can be either a drupal path, or an array with the keys 'path', 'query', 'fragment'.
  * @param $description
  *   Additional text to display (defaults to "This action cannot be undone.").
  * @param $yes
@@ -2083,9 +2084,13 @@
  * @return
  *   The form.
  */
-function confirm_form($form, $question, $destination, $description = NULL, $yes = NULL, $no = NULL, $name = 'confirm') {
+function confirm_form($form, $question, $path, $description = NULL, $yes = NULL, $no = NULL, $name = 'confirm') {
   $description = ($description) ? $description : t('This action cannot be undone.');
-  extract(parse_url($destination));
+
+  if (is_array($path)) {
+    extract($path);
+  }
+
   drupal_set_title($question);
   $form['#attributes'] = array('class' => 'confirmation');
   $form['description'] = array('#value' => $description);
