private boolean parseResponseStatusLine() {

	// Are there header lines at all?
	if( this.list.size() == 0 )
	    return false;
	
	// Try to locate the header beginning AT THE END
	// (usually the latest headers were added to the end of the list, and so
	//  if there are duplicates the latest one override the predecessor(s)).
	HTTPHeaderLine statusLine = null;
	String key = null;
	for( int i = this.list.size()-1; 
	     i >= 0 && statusLine == null; 
	     i-- ) {

	    HTTPHeaderLine tmp = this.list.get(0);
	    key = tmp.getKey();
	    if( key == null )
		continue;
	    
	    // Is this a response status header?
	    if( key.startsWith("HTTP") ) {

		// This will cause the loop to stop
		statusLine = tmp;

	    }
	} // END for

	if( statusLine == null )
	    return false;  // Not found



	// The first line should have this format (or like that):
	// HTTP/1.1 501 Internal Server Error
	// WHERE
	//  - statusCode := "501"
	//  - reasonPhrase := "Internal Server Error"

	// Find first two spaces
	key = key.trim();
	int indexA = key.indexOf( " " );
	//int indexB = key.indexOf( " ", indexA+1 );

	if( indexA == -1 ) {

	    // No spaces at all (only "HTTP/1.x")
	    return false;

	} else {

	    // Remove "HTTP/1.x" from the beginning, then trim.
	    key = key.substring(indexA+1, key.length()).trim();
	    int indexB = key.indexOf( " " );

	    if( indexB == -1 ) {

		// Has the format "[HTTP/1.x ] <status_code>"
		this.responseStatus = key;
		this.responseReasonPhrase = null;

	    } else {

		// Has the format "[HTTP/1.x ] <status_code> <reason_phrase>"
		this.responseStatus       = key.substring( 0, indexB ).trim();
		this.responseReasonPhrase = key.substring( indexB+1, key.length() ).trim();

	    } 

	    return true;
	}
	
    }