private boolean readObject()
	throws IOException,
	       JSONSyntaxException {

	// Mind the case of an empty object: {}
	if( this.currentChar == '}' ) {
	    this.fireObjectEnd();
	    return true;
	}
	
	while( this.readObjectMember() && this.currentChar != '}' ) {

	    
	    // object members are separated by ','
	    if( this.currentChar != ',' )
		this.skipWhitespace();
	    if( this.currentChar == '}' ) {
		this.readChar();
		this.fireObjectEnd();
		return true;
	    }
	    if( this.currentChar != ',' )
		throwJSONException( "Unexpected token: " + this.describeCurrentToken() + ". Failed to read object member's value (expected ',')." );
		
  
	} 
	
	if( this.currentValue == '}' ) {
	    this.readChar();
	    this.fireObjectEnd();
	}
	    
	return (this.currentValue != -1);
    }