   ;; TODO: Instead of returning nil on nothing to do, just
   ;; do something like setting a nil cursor.
   ;; That should simplify the caller.
-  (or (check-for-previous-block-to-resend state)
+  (let [found? (check-for-previous-block-to-resend state)]
+    (if (get-in found? [::specs/outbound ::specs/next-block-queue])
+      found?)
 ;;;       357-410: Try sending a new block: (-- DJB)
-                  ;; There's goto-fun overlap with resending
-                  ;; a previous block -- JRG
-      (check-for-new-block-to-send state)))
+     ;; There's goto-fun overlap with resending
+     ;; a previous block -- JRG
+    (check-for-new-block-to-send state)))
 
 (s/fdef block->parent!
         :args (s/cat :send-buf ::specs/buf)

                            n-sec-per-block
                            rtt-timeout
                            recent))
      nil)))

(s/fdef ok-to-send-new?
        :args (s/cat :state ::specs/state)

      ;; TODO: That instead.
      (log/debug (cl-format nil
                            (str
                             "~a (~a): Conditions wrong"
                             " for resending any of our ~d previously "
                             "sent un-ack'd blocks, based on"
                             "\nEarliest time: ~:d"
                             "\nnanoseconds per block: ~:d"
