Index: /FCKeditor/trunk/editor/_source/commandclasses/fckblockquotecommand.js
===================================================================
--- /FCKeditor/trunk/editor/_source/commandclasses/fckblockquotecommand.js	(revision 1138)
+++ /FCKeditor/trunk/editor/_source/commandclasses/fckblockquotecommand.js	(revision 1139)
@@ -36,4 +36,41 @@
 		range.MoveToSelection() ;
 		var bookmark = range.CreateBookmark() ;
+
+		// Kludge for #1592: if the bookmark nodes are in the beginning of blockquote, then move them
+		// to the nearest block element in the blockquote.
+		if ( FCKBrowserInfo.IsIE )
+		{
+			var bStart = range.Window.document.getElementById( bookmark.StartId ) ;
+			var bEnd = range.Window.document.getElementById( bookmark.EndId ) ;
+			var nearestBlock = null ;
+
+			if ( bStart && bStart.parentNode.nodeName.IEquals( 'blockquote' ) 
+					&& bStart == bStart.parentNode.firstChild ) 
+			{
+				var cursor = bStart ;
+				while ( ( cursor = cursor.nextSibling ) )
+				{
+					if ( FCKListsLib.BlockElements[cursor.nodeName.toLowerCase()] )
+						cursor.insertBefore( bStart.parentNode.removeChild( bStart ), cursor.firstChild ) ;
+				}
+			}
+
+			if ( bEnd && bEnd.parentNode.nodeName.IEquals( 'blockquote' ) 
+					&& bEnd == bEnd.parentNode.firstChild ) 
+			{
+				var cursor = bEnd ;
+				while ( ( cursor = cursor.nextSibling ) )
+				{
+					if ( FCKListsLib.BlockElements[cursor.nodeName.toLowerCase()] )
+					{
+						var insertPoint = cursor.firstChild ;
+						if ( cursor.firstChild == bStart )
+							insertPoint = bStart.nextSibling ;
+						cursor.insertBefore( bEnd.parentNode.removeChild( bEnd ), insertPoint ) ;
+					}
+				}
+			}
+		}
+
 		var iterator = new FCKDomRangeIterator( range ) ;
 		var block ;
