docs: function( serializable ) {
  			var startNode, endNode;
  			var baseId;
  			var clone;
  			var collapsed = this.collapsed;
  
  			startNode = this.document.createElement( 'span' );
  			startNode.data( 'cke-bookmark', 1 );
  			startNode.setStyle( 'display', 'none' );
  
  			// For IE, it must have something inside, otherwise it may be
  			// removed during DOM operations.
  			startNode.setHtml( '&nbsp;' );
  
  			if ( serializable ) {
  				baseId = 'cke_bm_' + CKEDITOR.tools.getNextNumber();
  				startNode.setAttribute( 'id', baseId + ( collapsed ? 'C' : 'S' ) );
  			}
  
  			// If collapsed, the endNode will not be created.
  			if ( !collapsed ) {
  				endNode = startNode.clone();
  				endNode.setHtml( '&nbsp;' );
  
  				if ( serializable )
  					endNode.setAttribute( 'id', baseId + 'E' );
  
  				clone = this.clone();
  				clone.collapse();
  				clone.insertNode( endNode );
  			}
  
  			clone = this.clone();
  			clone.collapse( true );
  			clone.insertNode( startNode );
  
  			// Update the range position.
  			if ( endNode ) {
  				this.setStartAfter( startNode );
  				this.setEndBefore( endNode );
  			} else {
  				this.moveToPosition( startNode, CKEDITOR.POSITION_AFTER_END );
  			}
  
  			return {
  				startNode: serializable ? baseId + ( collapsed ? 'C' : 'S' ) : startNode,
  				endNode: serializable ? baseId + 'E' : endNode,
  				serializable: serializable,
  				collapsed: collapsed
  			};
  		}