Index: src/wp-admin/js/editor-expand.js
===================================================================
--- src/wp-admin/js/editor-expand.js	(revision 29673)
+++ src/wp-admin/js/editor-expand.js	(working copy)
@@ -223,11 +223,27 @@
 		}
 
 		function mceHide() {
-			var wrapHeight = $( '#wpwrap' ).height();
+			var wrapHeight = $( '#wpwrap' ).height(),
+				windowPos = $window.scrollTop(),
+				iframeHeight, textareaHeight, scroll, topPos;
 
 			textEditorResize();
+			iframeHeight = $('#content_ifr').height();
+			textareaHeight = $textEditor.height();
 
-			if ( wrapHeight && $window.scrollTop() > wrapHeight ) {
+			if ( iframeHeight > textareaHeight && ( windowPos + heights.windowHeight ) > ( textareaHeight + $textEditor.offset().top ) ) {
+				scroll = iframeHeight - textareaHeight - 1;
+				topPos = $textEditor.parent().offset().top - heights.toolsHeight - heights.adminBarHeight;
+
+				if ( windowPos - scroll < topPos ) {
+					window.scrollTo( window.pageXOffset, topPos );
+				} else {
+					window.scrollBy( 0, -scroll );
+				}
+
+				adjust();
+				window.scrollBy( 0, 1 );
+			} else if ( wrapHeight && windowPos > wrapHeight ) {
 				window.scrollTo( window.pageXOffset, wrapHeight - 1 );
 			}
 
