--- ax25socket.cpp.orig 2003-05-29 21:26:33.000000000 +0300 +++ ax25socket.cpp 2005-05-05 23:43:59.000000000 +0300 @@ -288,8 +288,12 @@ // No rewriting for mic-e frames because aprsd does this later sprintf ((char*)buf1, "%s>%s%s:", from, to, digis); l = strlen ((char*)buf1); - for (i = 0; i < len; i++, l++) { - buf1[l] = (isprint (buf[i])) ? buf[i] : ' '; // keep it clean + for (i = 0; i < len; i++) { + /* preserve mic-e non-printable characters. */ + if (buf[i] >= 0x1c && buf[i] <= 0x7f) { + buf1[l] = buf[i]; + l++; + } } buf1[l++] = 0x0d;