Index: _source/plugins/selection/plugin.js
===================================================================
--- _source/plugins/selection/plugin.js	(revision 6371)
+++ _source/plugins/selection/plugin.js	(revision )
@@ -134,10 +134,7 @@
 								// point.
 								if ( savedRange )
 								{
-									// Range restored here might invalidate the DOM structure thus break up
-									// the locked selection, give it up. (#6083)
-									var lockedSelection = doc.getCustomData( 'cke_locked_selection' );
-									if ( restoreEnabled && !lockedSelection )
+									if ( restoreEnabled )
 									{
 										// Well not break because of this.
 										try
@@ -146,7 +143,15 @@
 										}
 										catch (e)
 										{}
+
+										// Update locked selection because of the normalized text nodes. (#6083, #6987)
+										var lockedSelection = doc.getCustomData( 'cke_locked_selection' );
+										if ( lockedSelection )
+										{
+											lockedSelection.unlock();
+											lockedSelection.lock();
-									}
+										}
+									}
 
 									savedRange = null;
 								}
