Index: src/wp-includes/js/mce-view.js
===================================================================
--- src/wp-includes/js/mce-view.js	(revision 39621)
+++ src/wp-includes/js/mce-view.js	(working copy)
@@ -116,7 +116,7 @@
 						}
 
 						instance = self.createInstance( type, result.content, result.options );
-						text = instance.loader ? '.' : instance.text;
+						text = instance.text;
 
 						// Add the processed piece for the match.
 						pieces.push( {
@@ -440,6 +440,17 @@
 				);
 
 				editor.$( node ).replaceWith( $viewNode );
+
+				var nextSibling = $viewNode[0].nextSibling;
+
+				if ( ! nextSibling ) {
+					nextSibling = editor.dom.create( 'p', { 'data-wpview-after': 1 }, '<br data-mce-bogus="1" />' );
+					$viewNode.after( nextSibling );
+				}
+
+				if ( ! nextSibling.hasAttribute( 'contenteditable' ) ) {
+					editor.selection.setCursorLocation( nextSibling, 0 );
+				}
 			} );
 		},
 
Index: src/wp-includes/js/tinymce/plugins/wpview/plugin.js
===================================================================
--- src/wp-includes/js/tinymce/plugins/wpview/plugin.js	(revision 39621)
+++ src/wp-includes/js/tinymce/plugins/wpview/plugin.js	(working copy)
@@ -102,8 +102,20 @@
 			wp.mce.views.render();
 		} );
 
-		// Empty view nodes for easier processing.
-		editor.on( 'preprocess hide', function( event ) {
+		editor.on( 'preprocess', function( event ) {
+			var $lastNode = editor.$( event.node.lastChild );
+
+			// Remove the last paragraph if it is empty and was auto-inserted caret placeholder after a wpview
+			if ( $lastNode.length && $lastNode.attr( 'data-wpview-after' ) && editor.dom.isEmpty( $lastNode[0] ) ) {
+				$lastNode.remove();
+			}
+
+			// Remove internal data attributes
+			editor.$( 'p[data-wpview-after]', event.node ).each( function( i, node ) {
+				editor.$( node ).removeAttr( 'data-wpview-after' );
+			} );
+
+			// Empty wpview nodes
 			editor.$( 'div[data-wpview-text], p[data-wpview-marker]', event.node ).each( function( i, node ) {
 				node.innerHTML = '.';
 			} );
