Index: modules/dashboard/dashboard.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/dashboard/dashboard.css,v
retrieving revision 1.15
diff -u -p -r1.15 dashboard.css
--- modules/dashboard/dashboard.css	6 Nov 2010 23:24:33 -0000	1.15
+++ modules/dashboard/dashboard.css	12 Dec 2010 23:11:58 -0000
@@ -56,15 +56,12 @@
   border: 0;
 }
 
-#dashboard .canvas-content a.button {
-  margin: 0 0 0 10px;
-  color: #5a5a5a;
-  text-decoration: none;
-}
-
 #dashboard .region {
   margin: 5px;
 }
+#dashboard .canvas-content .region {
+  margin: 0 0 5px 0;
+}
 
 #dashboard #disabled-blocks .region {
   background-color: #E0E0D8;
@@ -79,6 +76,7 @@
 #dashboard #disabled-blocks h2 {
   display: inline;
   font-weight: normal;
+  font-size: 1em;
   white-space: nowrap;
 }
 
Index: modules/dashboard/dashboard.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/dashboard/dashboard.js,v
retrieving revision 1.13
diff -u -p -r1.13 dashboard.js
--- modules/dashboard/dashboard.js	8 Jun 2010 05:16:29 -0000	1.13
+++ modules/dashboard/dashboard.js	12 Dec 2010 23:11:58 -0000
@@ -65,7 +65,7 @@ Drupal.behaviors.dashboard = {
    */
   setupDrawer: function () {
     $('div.customize .canvas-content input').click(Drupal.behaviors.dashboard.exitCustomizeMode);
-    $('div.customize .canvas-content').append('<a class="button" href="' + Drupal.settings.dashboard.dashboard + '">' + Drupal.t('Done') + '</a>');
+    $('div.customize .canvas-content').append(Drupal.settings.dashboard.closeCustomizeForm);
 
     // Initialize drag-and-drop.
     var regions = $('#dashboard div.region');
Index: modules/dashboard/dashboard.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/dashboard/dashboard.module,v
retrieving revision 1.41
diff -u -p -r1.41 dashboard.module
--- modules/dashboard/dashboard.module	6 Nov 2010 23:24:33 -0000	1.41
+++ modules/dashboard/dashboard.module	12 Dec 2010 23:11:58 -0000
@@ -275,6 +275,7 @@ function dashboard_admin($launch_customi
       'formToken' => drupal_get_token('dashboard-update'),
       'launchCustomize' => $launch_customize,
       'dashboard' => url('admin/dashboard'),
+      'closeCustomizeForm' => drupal_render(drupal_get_form('dashboard_close_customize_form')),
       'emptyBlockText' => t('(empty)'),
       'emptyRegionTextInactive' => t('This dashboard region is empty. Click <em>Customize dashboard</em> to add blocks to it.'),
       'emptyRegionTextActive' => t('DRAG HERE'),
@@ -296,6 +297,26 @@ function dashboard_admin($launch_customi
 }
 
 /**
+ * Generates a form for closing the dashboard customization mode.
+ *
+ * This form is only used for display purposes in JavaScript, so it does not
+ * have any validation or submit handlers.
+ *
+ * @ingroup forms
+ * @see dashboard_admin()
+ */
+function dashboard_close_customize_form($form, &$form_state) {
+  // This is a standalone button, so do not put it in the usual 'actions'
+  // wrapper.
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Done'),
+  );
+
+  return $form;
+}
+
+/**
  * Menu page callback: builds the page for administering dashboard blocks.
  *
  * This page reuses the Block module's administration form but limits editing
