--- src/x86/win32.S.orig	2015-07-06 15:03:31.455600000 -0400
+++ src/x86/win32.S	2015-07-06 15:05:55.958400000 -0400
@@ -62,6 +62,9 @@
         mov  ecx, cif_bytes
         sub  esp, ecx
 
+        ;; align the stack pointer on a multiple of 16
+        andl  esp, -16
+
         mov  eax, esp
 
         ;; Call ffi_prep_args
@@ -543,6 +546,9 @@
         # Make room for all of the new args.
         movl  20(%ebp),%ecx                                                     
         subl  %ecx,%esp
+
+        # align the stack pointer on a multiple of 16
+        andl  $-16,%esp
  
         movl  %esp,%eax
  
