public boolean replaceResponseLine( HTTPHeaderLine statusLine ) 
	throws NullPointerException,
	       HeaderFormatException {

	if( statusLine == null )
	    throw new NullPointerException( "Cannot replace the response status line with null line." );
	
	if( statusLine.getKey() == null )
	    throw new HeaderFormatException( "Cannot replace the response status line with this header line. Key is null: " + statusLine, statusLine );
	
	if( !statusLine.getKey().startsWith("HTTP") )
	    throw new HeaderFormatException( "Cannot replace the response status line with this header line. Key does not start with 'HTTP': " + statusLine, statusLine );
	

	// Response line seems OK (perform deep check?).
	int index = this.locateStatusLine();



	// Reset the respone fields for later re-evaluation!
	this.responseStatus       = null;
	this.responseReasonPhrase = null;



	// Replace?
	if( index != -1 ) {

	    this.replaceLine( index, statusLine );

	    // Indicates that the old one existed and was reaplaced.
	    return true;

	} else {

	    // And add the new line to the beginning :)
	    this.list.add( 0, statusLine );
	    this.registerToMap( statusLine );

	    // Indicates that is was added.
	    return false;
	}
	
    }