               5 (do
                   (is (= incoming ::specs/normal))
                   (log/info "Received server EOF")
+                  (dfrd/success! succeeded? ::kthxbai)
                   ;; At this point, we signalled the end of the transaction.
                   ;; We closed our outbound pipe in the previous step,
                   ;; which is what closed this.

                        "handshake-test run through. Need to see what happened\n"
                        "=====================================================")
              (let [client-message-state (message/get-state client-io time-out ::timed-out)]
                (when (or (= client-message-state ::timed-out)
                          (instance? Throwable client-state)
                          (nil? client-message-state))

                    ;; Q: Is that true? Or have I just not studied its
                    ;; docs thoroughly enough?
                    (is (not flow-control) "Client flow-control behind a timeout"))))
              ;; FIXME: This next step is evil, but we deliberately don't have access to the
              ;; details at this level.
              ;; Digging in to get them would be worse.
              ;; Add some sort of hooks (promise/deferred seems like the most
              ;; appropriate choice) to let the io-loop broadcast when a particular
              ;; state has finished.
              ;; Or maybe this is already there.
              ;; TODO: Clean this mess up.
              (Thread/sleep 25)   ; Give the server side a chance to flush
              (let [{:keys [::specs/flow-control]
                     :as srvr-state} (message/get-state server-io time-out ::timed-out)]
                (when (or (= srvr-state ::timed-out)
