diff -r a00302b18c60 src/misc2.c
--- a/src/misc2.c	Thu Sep 05 21:41:40 2013 +0200
+++ b/src/misc2.c	Sat Sep 07 00:47:12 2013 +0200
@@ -6496,13 +6496,15 @@
 get4c(fd)
     FILE	*fd;
 {
-    int		n;
-
-    n = getc(fd);
-    n = (n << 8) + getc(fd);
-    n = (n << 8) + getc(fd);
-    n = (n << 8) + getc(fd);
-    return n;
+    /* Use unsigned rather than int otherwise result is undefined
+     * when left-shift sets the MSB. */
+    unsigned	n;
+
+    n = (unsigned)getc(fd);
+    n = (n << 8) + (unsigned)getc(fd);
+    n = (n << 8) + (unsigned)getc(fd);
+    n = (n << 8) + (unsigned)getc(fd);
+    return (int)n;
 }
 
 /*
