--- xvi-2.50.3/src/unix.c.orig
+++ xvi-2.50.3/src/unix.c
@@ -574,6 +574,10 @@
#ifdef TERMIO
# ifdef POSIX
ospeed = cfgetospeed(&cooked_state);
+ if (ospeed > 18) {
+ /* GNU termcap can't handle large values */
+ ospeed = 0;
+ }
# else /* not POSIX */
ospeed = speeds[cooked_state.c_cflag & CBAUD];
# endif