Index: misc/collapse.js
===================================================================
RCS file: /cvs/drupal/drupal/misc/collapse.js,v
retrieving revision 1.26
diff -u -p -r1.26 collapse.js
--- misc/collapse.js	16 Oct 2009 19:20:34 -0000	1.26
+++ misc/collapse.js	7 Nov 2009 01:33:54 -0000
@@ -11,7 +11,8 @@ Drupal.toggleFieldset = function (fields
     var content = $('> div:not(.action)', fieldset);
     $(fieldset)
       .removeClass('collapsed')
-      .trigger({ type: 'collapsed', value: false });
+      .trigger({ type: 'collapsed', value: false })
+      .find('> legend > a > span.element-invisible').empty().append(Drupal.t('Hide'));
     content.hide();
     content.slideDown({
       duration: 'fast',
@@ -31,7 +32,8 @@ Drupal.toggleFieldset = function (fields
     $('div.action', fieldset).hide();
     $(fieldset).trigger({ type: 'collapsed', value: true });
     var content = $('> div:not(.action)', fieldset).slideUp('fast', function () {
-      $(this.parentNode).addClass('collapsed');
+      $(this.parentNode).addClass('collapsed')
+        .find('> legend > a > span.element-invisible').empty().append(Drupal.t('Show'));
       this.parentNode.animating = false;
     });
   }
@@ -75,7 +77,8 @@ Drupal.behaviors.collapse = {
       // Turn the legend into a clickable link and wrap the contents of the
       // fieldset in a div for easier animation.
       var text = this.innerHTML;
-        $(this).empty().append($('<a href="#">' + text + '</a>').click(function () {
+      $(this).empty().append($('<a href="#">' + text + '</a>')
+        .click(function () {
           var fieldset = $(this).parents('fieldset:first')[0];
           // Don't animate multiple times.
           if (!fieldset.animating) {
@@ -83,12 +86,17 @@ Drupal.behaviors.collapse = {
             Drupal.toggleFieldset(fieldset);
           }
           return false;
-        }))
-        .append(summary)
-        .after(
-          $('<div class="fieldset-wrapper"></div>')
-            .append(fieldset.children(':not(legend):not(.action)'))
-        );
+        })
+        .prepend($('<span class="element-invisible"></span>')
+          .append(fieldset.hasClass('collapsed') ? Drupal.t('Show') : Drupal.t('Hide'))
+          .after(' ')
+        )
+      )
+      .append(summary)
+      .after(
+        $('<div class="fieldset-wrapper"></div>')
+          .append(fieldset.children(':not(legend):not(.action)'))
+      );
     });
   }
 };
Index: modules/system/system.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.css,v
retrieving revision 1.63
diff -u -p -r1.63 system.css
--- modules/system/system.css	21 Sep 2009 08:52:41 -0000	1.63
+++ modules/system/system.css	7 Nov 2009 01:33:54 -0000
@@ -322,7 +322,7 @@ html.js fieldset.collapsed {
 html.js fieldset.collapsed * {
   display: none;
 }
-html.js fieldset.collapsed legend {
+html.js fieldset.collapsed legend, html.js fieldset.collapsed legend a span.element-invisible {
   display: block;
   overflow: hidden;
 }
