diff --git a/src/syncterm/ripper.c b/src/syncterm/ripper.c
index 7adc46d9740aa8f6af397628e8a94ac3cab43871..fc881531d96137ac291e8a889fddf507009337b1 100644
--- a/src/syncterm/ripper.c
+++ b/src/syncterm/ripper.c
@@ -16356,6 +16356,11 @@ rip_getch(void)
 	hold_update = oldhold;
 	return ch;
 #else
-	return getch();
+	int                ch;
+
+	ch = getch();
+	if ((ch == 0) || (ch == 0xe0))
+		ch |= getch() << 8;
+	return ch;
 #endif
 }