Index: src/wp-admin/edit-form-advanced.php
===================================================================
--- src/wp-admin/edit-form-advanced.php	(revision 29618)
+++ src/wp-admin/edit-form-advanced.php	(working copy)
@@ -496,7 +496,7 @@
 	'dfw' => true,
 	'drag_drop_upload' => true,
 	'tabfocus_elements' => 'insert-media-button-1,save-post',
-	'editor_height' => 360,
+	'editor_height' => 300,
 	'tinymce' => array(
 		'resize' => false,
 		'wp_autoresize_on' => ( ! empty( $_wp_autoresize_on ) && get_user_setting( 'editor_expand', 'on' ) === 'on' ),
Index: src/wp-admin/js/editor-expand.js
===================================================================
--- src/wp-admin/js/editor-expand.js	(revision 29618)
+++ src/wp-admin/js/editor-expand.js	(working copy)
@@ -34,6 +34,7 @@
 		pageYOffsetAtTop = 130,
 		pinnedToolsTop = 56,
 		autoresizeMinHeight = 300,
+		initialMode = window.getUserSetting( 'editor' ),
 		// These are corrected when adjust() runs, except on scrolling if already set.
 		heights = {
 			windowHeight: 0,
@@ -119,7 +120,7 @@
 	}
 
 	function textEditorResize() {
-		if ( mceEditor && ! mceEditor.isHidden() ) {
+		if ( ( mceEditor && ! mceEditor.isHidden() ) || ( ! mceEditor && initialMode === 'tinymce' ) ) {
 			return;
 		}
 
Index: src/wp-includes/class-wp-editor.php
===================================================================
--- src/wp-includes/class-wp-editor.php	(revision 29618)
+++ src/wp-includes/class-wp-editor.php	(working copy)
@@ -112,7 +112,7 @@
 		if ( empty( $set['editor_height'] ) )
 			return $set;
 
-		if ( 'content' === $editor_id ) {
+		if ( 'content' === $editor_id && empty( $set['tinymce']['wp_autoresize_on'] ) ) {
 			// A cookie (set when a user resizes the editor) overrides the height.
 			$cookie = (int) get_user_setting( 'ed_size' );
 
Index: src/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js
===================================================================
--- src/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js	(revision 29618)
+++ src/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js	(working copy)
@@ -37,6 +37,10 @@
 		return parseInt( n, 10 ) || 0;
 	}
 
+	function isEmpty() {
+		return editor.getContent( { format: 'raw' } ).replace( /(?:<p[^>]*>)?(?:<br[^>]*>)?(?:<\/p>)?/, '' ) === '';
+	}
+
 	/**
 	 * This method gets executed each time the editor needs to resize.
 	 */
@@ -48,6 +52,10 @@
 			return;
 		}
 
+		if ( isEmpty() ) {
+			return;
+		}
+
 		doc = editor.getDoc();
 		if ( ! doc ) {
 			return;
@@ -108,6 +116,7 @@
 		// Resize content element
 		if (resizeHeight !== oldSize) {
 			deltaSize = resizeHeight - oldSize;
+			console.log( resizeHeight, oldSize, parseInt( DOM.getStyle( editor.iframeElement, 'height', true ), 10 ) );
 			DOM.setStyle( editor.iframeElement, 'height', resizeHeight + 'px' );
 			oldSize = resizeHeight;
 
