Index: src/wp-admin/js/editor-expand.js
===================================================================
--- src/wp-admin/js/editor-expand.js	(revision 37600)
+++ src/wp-admin/js/editor-expand.js	(working copy)
@@ -16,7 +16,7 @@
 			$textTop = $( '#ed_toolbar' ),
 			$textEditor = $( '#content' ),
 			textEditor = $textEditor[0],
-			textEditorLength = 0,
+			oldTextLength = 0,
 			$bottom = $( '#post-status-info' ),
 			$menuBar = $(),
 			$statusBar = $(),
@@ -76,8 +76,6 @@
 		}
 
 		function textEditorResize() {
-			var reduce, scrollHeight;
-
 			if ( mceEditor && ! mceEditor.isHidden() ) {
 				return;
 			}
@@ -86,17 +84,29 @@
 				return;
 			}
 
-			reduce = textEditorLength > ( textEditorLength = textEditor.value.length );
-			scrollHeight = textEditor.scrollHeight;
+			var length = textEditor.value.length;
 
-			if ( reduce ) {
+			if ( length < oldTextLength ) {
+				var oldHeight = textEditor.scrollHeight;
+				// textEditor.scrollHeight is not adjusted until the next line.
 				textEditor.style.height = 'auto';
-				textEditor.style.height = scrollHeight + 'px';
+
+				if ( textEditor.scrollHeight >= autoresizeMinHeight ) {
+					textEditor.style.height = textEditor.scrollHeight + 'px';
+					adjust();
+				} else {
+					textEditor.style.height = autoresizeMinHeight + 'px';
+
+					 if ( oldHeight !== autoresizeMinHeight ) {
+					 	adjust();
+					 }
+				}
+			} else if ( parseInt( textEditor.style.height, 10 ) < textEditor.scrollHeight ) {
+				textEditor.style.height = textEditor.scrollHeight + 'px';
 				adjust();
-			} else if ( parseInt( textEditor.style.height, 10 ) < scrollHeight ) {
-				textEditor.style.height = scrollHeight + 'px';
-				adjust();
 			}
+
+			oldTextLength = length;
 		}
 
 		// We need to wait for TinyMCE to initialize.
