Index: core/src/main/java/quickfix/Session.java =================================================================== --- core/src/main/java/quickfix/Session.java (revision 996) +++ core/src/main/java/quickfix/Session.java (working copy) @@ -749,7 +749,7 @@ } try { resetting.set(true); - if (hasResponder()) { + if (isLoggedOn() && hasResponder()) { if (application != null && application instanceof ApplicationExtended) { ((ApplicationExtended) application).onBeforeSessionReset(sessionID); } Index: core/src/main/java/quickfix/SessionState.java =================================================================== --- core/src/main/java/quickfix/SessionState.java (revision 996) +++ core/src/main/java/quickfix/SessionState.java (working copy) @@ -358,17 +358,9 @@ return messageStore.getCreationTime(); } - private boolean needReset() throws IOException { - synchronized (lock) { - return messageStore.getNextSenderMsgSeqNum() != 1 || messageStore.getNextTargetMsgSeqNum() != 1; - } - } - public void reset() { try { - if (needReset()) { - messageStore.reset(); - } + messageStore.reset(); } catch (IOException e) { throw new RuntimeError(e); }