Index: modules/overlay/overlay-parent.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/overlay/overlay-parent.css,v
retrieving revision 1.7
diff -u -r1.7 overlay-parent.css
--- modules/overlay/overlay-parent.css	5 Jan 2010 15:50:20 -0000	1.7
+++ modules/overlay/overlay-parent.css	6 Jan 2010 10:40:49 -0000
@@ -97,6 +97,10 @@
   overflow: hidden;
   width: 100%;
   height: 100%;
+  visibility: hidden;
+}
+.overlay-loaded #overlay-element {
+  visibility: visible;
 }
 
 /**
Index: modules/overlay/overlay-parent.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/overlay/overlay-parent.js,v
retrieving revision 1.12
diff -u -r1.12 overlay-parent.js
--- modules/overlay/overlay-parent.js	6 Jan 2010 04:03:39 -0000	1.12
+++ modules/overlay/overlay-parent.js	6 Jan 2010 10:40:49 -0000
@@ -283,19 +283,17 @@
   // Change the overlay title.
   self.$container.dialog('option', 'title', Drupal.t('Loading...'));
 
-  // When a new overlay is opened and loaded, we add a loaded class to the
-  // dialog. The loaded class is not removed and added back again while
-  // switching between pages with the overlay already open, due to
-  // performance issues (see http://drupal.org/node/615130).
+  // While the overlay is loading, we remove the loaded class from the dialog.
+  // After the loading is finished, the loaded class is added back. The loaded 
+  // class is being used to hide the iframe while loading.
+  // @see overlay-parent.css .overlay-loaded #overlay-element
   self.$dialog.removeClass('overlay-loaded');
   self.$iframe
-    .css('visibility', 'hidden')
     .bind('load.overlay-event', function () {
       self.isLoading = false;
 
       // Only continue when overlay is still open and not closing.
       if (self.isOpen && !self.isClosing) {
-        self.$iframe.css('visibility', '');
         self.$dialog.addClass('overlay-loaded');
       }
       else {
