diff --git a/src/m_swap.h b/src/m_swap.h
index 4318ce7be9ee1321ada7a0517f0e5c3beccdd4a0..3b50dc623737435bda8bd04eac6b50511e9cb626 100644
--- a/src/m_swap.h
+++ b/src/m_swap.h
@@ -42,8 +42,8 @@
 
 // Big to little endian
 #ifdef SRB2_LITTLE_ENDIAN
-	#define BIGENDIAN_LONG(x) ((INT32)((x>>24)&0xff)|((x<<8)&0xff0000)|((x>>8)&0xff00)|((x<<24)&0xff000000))
-	#define BIGENDIAN_SHORT(x) ((INT16)((x>>8)|(x<<8)))
+	#define BIGENDIAN_LONG(x) ((INT32)(((x)>>24)&0xff)|(((x)<<8)&0xff0000)|(((x)>>8)&0xff00)|(((x)<<24)&0xff000000))
+	#define BIGENDIAN_SHORT(x) ((INT16)(((x)>>8)|((x)<<8)))
 #else
 	#define BIGENDIAN_LONG(x) ((INT32)(x))
 	#define BIGENDIAN_SHORT(x) ((INT16)(x))