Index: src/wp-admin/css/edit.css
===================================================================
--- src/wp-admin/css/edit.css	(revision 32330)
+++ src/wp-admin/css/edit.css	(working copy)
@@ -380,20 +380,6 @@
 	position: relative;
 }
 
-#content-textarea-clone {
-	z-index: -1;
-	position: absolute;
-	top: 0;
-	visibility: hidden;
-	overflow: hidden;
-	max-width: 100%;
-	border: 1px solid transparent;
-}
-
-.wp-fullscreen-wrap #content-textarea-clone {
-	display: none;
-}
-
 /* editor-expand.js override */
 .wp-fullscreen-wrap {
 	padding-top: 0 !important;
Index: src/wp-admin/js/editor-expand.js
===================================================================
--- src/wp-admin/js/editor-expand.js	(revision 32330)
+++ src/wp-admin/js/editor-expand.js	(working copy)
@@ -15,7 +15,8 @@
 			$visualEditor = $(),
 			$textTop = $( '#ed_toolbar' ),
 			$textEditor = $( '#content' ),
-			$textEditorClone = $( '<div id="content-textarea-clone"></div>' ),
+			textEditor = $textEditor[0],
+			textEditorLength = 0,
 			$bottom = $( '#post-status-info' ),
 			$menuBar = $(),
 			$statusBar = $(),
@@ -52,16 +53,6 @@
 				sideSortablesHeight: 0
 			};
 
-		$textEditorClone.insertAfter( $textEditor );
-
-		$textEditorClone.css( {
-			'font-family': $textEditor.css( 'font-family' ),
-			'font-size': $textEditor.css( 'font-size' ),
-			'line-height': $textEditor.css( 'line-height' ),
-			'white-space': 'pre-wrap',
-			'word-wrap': 'break-word'
-		} );
-
 		function getHeights() {
 			var windowWidth = $window.width();
 
@@ -84,68 +75,31 @@
 			}
 		}
 
-		function textEditorKeyup( event ) {
-			var VK = jQuery.ui.keyCode,
-				key = event.keyCode,
-				range = document.createRange(),
-				selStart = $textEditor[0].selectionStart,
-				selEnd = $textEditor[0].selectionEnd,
-				textNode = $textEditorClone[0].firstChild,
-				buffer = 10,
-				offset, cursorTop, cursorBottom, editorTop, editorBottom;
-
-			if ( selStart && selEnd && selStart !== selEnd ) {
-				return;
-			}
-
-			// These are not TinyMCE ranges.
-			try {
-				range.setStart( textNode, selStart );
-				range.setEnd( textNode, selEnd + 1 );
-			} catch ( ex ) {}
-
-			offset = range.getBoundingClientRect();
-
-			if ( ! offset.height ) {
-				return;
-			}
-
-			cursorTop = offset.top - buffer;
-			cursorBottom = cursorTop + offset.height + buffer;
-			editorTop = heights.adminBarHeight + heights.toolsHeight + heights.textTopHeight;
-			editorBottom = heights.windowHeight - heights.bottomHeight;
-
-			if ( cursorTop < editorTop && ( key === VK.UP || key === VK.LEFT || key === VK.BACKSPACE ) ) {
-				window.scrollTo( window.pageXOffset, cursorTop + window.pageYOffset - editorTop );
-			} else if ( cursorBottom > editorBottom ) {
-				window.scrollTo( window.pageXOffset, cursorBottom + window.pageYOffset - editorBottom );
-			}
-		}
-
 		function textEditorResize() {
+			var length, pageYOffset;
+
 			if ( ( mceEditor && ! mceEditor.isHidden() ) || ( ! mceEditor && initialMode === 'tinymce' ) ) {
 				return;
 			}
 
-			var textEditorHeight = $textEditor.height(),
-				hiddenHeight;
+			length = textEditor.value.length;
 
-			$textEditorClone.width( $textEditor.width() - 22 );
-			$textEditorClone.text( $textEditor.val() + '&nbsp;' );
+			if ( length !== textEditorLength ) {
+				if ( length < textEditorLength ) {
+					pageYOffset = window.pageYOffset;
+					textEditor.style.height = 'auto';
+				}
 
-			hiddenHeight = $textEditorClone.height();
+				textEditor.style.height = textEditor.scrollHeight + 'px';
 
-			if ( hiddenHeight < autoresizeMinHeight ) {
-				hiddenHeight = autoresizeMinHeight;
-			}
+				if ( length < textEditorLength ) {
+					window.scrollTo( window.pageXOffset, pageYOffset );
+				}
 
-			if ( hiddenHeight === textEditorHeight ) {
-				return;
+				adjust();
 			}
 
-			$textEditor.height( hiddenHeight );
-
-			adjust();
+			textEditorLength = length;
 		}
 
 		// We need to wait for TinyMCE to initialize.
@@ -603,8 +557,6 @@
 					$textEditor.css( {
 						marginTop: heights.textTopHeight
 					} );
-
-					$textEditorClone.width( contentWrapWidth - 20 - ( borderWidth * 2 ) );
 				}
 			}
 		}
@@ -660,7 +612,6 @@
 				});
 
 			$textEditor.on( 'focus.editor-expand input.editor-expand propertychange.editor-expand', textEditorResize );
-			$textEditor.on( 'keyup.editor-expand', textEditorKeyup );
 			mceBind();
 
 			// Adjust when entering/exiting fullscreen mode.
