Index: _source/plugins/domiterator/plugin.js
===================================================================
--- _source/plugins/domiterator/plugin.js	(revision 3930)
+++ _source/plugins/domiterator/plugin.js	Thu Jul 23 22:38:06 CST 2009
@@ -204,6 +204,9 @@
 				if ( includeNode )
 					range.setEndAt( currentNode, CKEDITOR.POSITION_AFTER_END );
 
+				currentNode = currentNode.getNextSourceNode( continueFromSibling, null, lastNode );
+				isLast = !currentNode;
+
 				// We have found a block boundary. Let's close the range and move out of the
 				// loop.
 				if ( ( closeRange || isLast ) && range )
@@ -211,10 +214,16 @@
 					var boundaryNodes = range.getBoundaryNodes(),
 						startPath = new CKEDITOR.dom.elementPath( range.startContainer ),
 						endPath = new CKEDITOR.dom.elementPath( range.endContainer );
+
+					// Drop the range if it only contains bookmark nodes.(#4087)
 					if ( boundaryNodes.startNode.equals( boundaryNodes.endNode )
-							&& boundaryNodes.startNode.getParent().equals( startPath.blockLimit )
+						&& boundaryNodes.startNode.getParent().equals( startPath.blockLimit )
-							&& boundaryNodes.startNode.type == CKEDITOR.NODE_ELEMENT && boundaryNodes.startNode.getAttribute( '_fck_bookmark' ) )
+						&& boundaryNodes.startNode.type == CKEDITOR.NODE_ELEMENT
+						&& boundaryNodes.startNode.getAttribute( '_fck_bookmark' ) )
+					{
 						range = null;
+						this._.nextNode = null;
+					}
 					else
 						break;
 				}
@@ -222,7 +231,6 @@
 				if ( isLast )
 					break;
 
-				currentNode = currentNode.getNextSourceNode( continueFromSibling, null, lastNode );
 			}
 
 			// Now, based on the processed range, look for (or create) the block to be returned.
Index: CHANGES.html
===================================================================
--- CHANGES.html	(revision 3946)
+++ CHANGES.html	Thu Jul 23 22:39:32 CST 2009
@@ -162,6 +162,7 @@
 			ckeditor2.html test case.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/3989">#3989</a> : Host page horizontal scrolling a lot when on having righ-to-left direction.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4001">#4001</a> : Create link around existing image result incorrect.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4087">#4087</a> : [Firefox]Fixed extra blocks created on create list when full document selected.</li>
 	</ul>
 	<h3>
 		CKEditor 3.0 RC</h3>
