diff -Nur qtads-1.6c/tads2/h_ix86.h qtads-1.6c.new/tads2/h_ix86.h
--- qtads-1.6c/tads2/h_ix86.h	2004-12-15 08:25:31.000000000 -0800
+++ qtads-1.6c.new/tads2/h_ix86.h	2005-08-25 21:06:51.000000000 -0700
@@ -36,10 +36,10 @@
 #define oswp2(p, i) (*(unsigned short *)(p)=(unsigned short)(i))
 
 /* read unaligned portable 4-byte value, returning long */
-#define osrp4(p) (*(long *)(p))
+#define osrp4(p) ((long) (*(int *)(p)))
 
 /* write long to unaligned portable 4-byte value */
-#define oswp4(p, l) (*(long *)(p)=(l))
+#define oswp4(p, l) (*(int *)(p)=((int)(l)))
 
 
 #endif /* H_IX86_H */
