diff --git a/src/dlmalloc.c b/src/dlmalloc.c
--- a/src/dlmalloc.c
+++ b/src/dlmalloc.c
@@ -1916,8 +1916,8 @@ static FORCEINLINE void x86_clear_lock(int* sl) {
 #define CLEAR_LOCK(sl)   x86_clear_lock(sl)
 
 #else /* Win32 MSC */
-#define CAS_LOCK(sl)     interlockedexchange(sl, (LONG)1)
-#define CLEAR_LOCK(sl)   interlockedexchange (sl, (LONG)0)
+#define CAS_LOCK(sl)     interlockedexchange((LONG volatile *)(sl), (LONG)1)
+#define CLEAR_LOCK(sl)   interlockedexchange ((LONG volatile *)(sl), (LONG)0)
 
 #endif /* ... gcc spins locks ... */
 
