diff --git a/web/chat.html b/web/chat.html
index 1f57e46..f23c42f 100644
--- a/web/chat.html
+++ b/web/chat.html
@@ -1597,7 +1597,9 @@ async function sendCurrentMsg() {
if (!msg) return;
if (!carrierOn) { logLine('err', 'start carrier first'); return; }
const mode = currentMode();
- const baud = negotiatedBaud || myMaxBaud || ZEBRA_BAUD_DEFAULT;
+ /* must match the inbound decoder, which stays at ZEBRA_BAUD_HANDSHAKE for the
+ * life of the link — data sent at any other baud won't decode on the far side. */
+ const baud = ZEBRA_BAUD_HANDSHAKE;
try {
if (mode === 'passphrase') {
if (!groupKey) { logLine('err', 'no room key'); return; }