       break;
     }
   }
+  // the car jam of blocked bytes stops HERE
+  //debugPrintf("%d\n",serialOutBufferBytesRemaining());
+  while(serialOutBufferBytesRemaining()<1)
+  {
+    if(!isSerialOut())
+      delay(1);
+    else
+      serialOutDeque();
+    yield();
+  }
   enqueSerialOut(c);
 }
 

  switch(flowControlType)
  {
  case FCT_RTSCTS:
#ifndef ZIMODEM_ESP32
    if(pinSupport[pinCTS])
    {
      //debugPrintf("CTS: pin %d (%d == %d)\n",pinCTS,digitalRead(pinCTS),ctsActive);
      return (digitalRead(pinCTS) == ctsActive);
    }
#endif
    return true;
  case FCT_NORMAL:
  case FCT_AUTOOFF:


bool ZSerial::isSerialCancelled()
{
  if(flowControlType == FCT_RTSCTS)
  {
    if(pinSupport[pinCTS])
    {
      //debugPrintf("CTS: pin %d (%d == %d)\n",pinCTS,digitalRead(pinCTS),ctsActive);
      return (digitalRead(pinCTS) == ctsInactive);
    }
  }
  return false;
}

