Index: src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js
===================================================================
--- src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js	(revision 33507)
+++ src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js	(working copy)
@@ -26,14 +26,19 @@
 				{ start: '######', format: 'h6' },
 				{ start: '>', format: 'blockquote' }
 			],
+			canUndoSpace, canUndoEnter,
 			refNode, refPattern;
 
 		editor.on( 'selectionchange', function() {
-			canUndo = false;
+			canUndoSpace = null;
+			canUndoEnter = null;
 		} );
 
 		editor.on( 'keydown', function( event ) {
-			if ( canUndo && ( event.keyCode === VK.BACKSPACE || event.keyCode === 27 /* ESCAPE */ ) ) {
+			if (
+				( ( canUndoSpace || canUndoEnter ) && event.keyCode === 27 /* ESCAPE */ ) ||
+				( canUndoSpace && event.keyCode === VK.BACKSPACE )
+			) {
 				editor.undoManager.undo();
 				event.preventDefault();
 			}
@@ -115,7 +120,7 @@
 
 				// We need to wait for native events to be triggered.
 				setTimeout( function() {
-					canUndo = true;
+					canUndoSpace = true;
 				} );
 
 				return false;
@@ -168,6 +173,11 @@
 					editor.formatter.apply( refPattern.format, {}, refNode );
 					refNode.deleteData( 0, refPattern.start.length );
 				} );
+
+				// We need to wait for native events to be triggered.
+				setTimeout( function() {
+					canUndoEnter = true;
+				} );
 			}
 
 			refNode = null;
