public Status getStatus() {
        if ( error_ != null ) {
            return Status.EXCEPTION;
        }
        else if ( response_ != null ) {
            String status = response_.getStatus();
            if ( Response.OK_STATUS.equals( status ) ) {
                return Status.OK;
            }
            else if ( Response.WARNING_STATUS.equals( status ) ) {
                return Status.WARNING;
            }
            else if ( Response.ERROR_STATUS.equals( status ) ) {
                return Status.ERROR;
            }
            else if ( status == null ) {
                return Status.NONE;
            }
            else {
                return new Status( "Completed (" + status + ")",
                                   Status.WARNING_COLOR, true );
            }
        }
        else if ( msgId_ == null && msgTag_ == null ) {
            return Status.NOTIFIED;
        }
        else if ( receiverUnreg_ ) {
            return Status.ORPHANED;
        }
        else {
            assert ! isDone();
            return Status.PENDING;
        }
    }