Index: /branches/ia32/lib/ffi-darwinx8632.lisp
===================================================================
--- /branches/ia32/lib/ffi-darwinx8632.lisp	(revision 9384)
+++ /branches/ia32/lib/ffi-darwinx8632.lisp	(revision 9385)
@@ -107,5 +107,5 @@
 	    (argspecs argspecs (cdr argspecs))
 	    (delta 4 4)
-	    (offset 0 (+ offset delta)))
+	    (offset -4 (decf offset delta)))
 	   ((null argvars)
 	    (values (rlets) (lets) (dynamic-extent-names) (inits) rtype nil 4))
@@ -121,15 +121,19 @@
 			  (ecase (foreign-type-to-representation-type argtype)
 			    (:single-float '%get-single-float)
-			    (:double-float '%get-double-float)
-			    (:signed-doubleword '%%get-signed-longlong)
+			    (:double-float (incf offset 4)
+					   '%get-double-float)
+			    (:signed-doubleword (incf offset 4)
+						'%%get-signed-longlong)
 			    (:signed-fullword '%get-signed-long)
 			    (:signed-halfword '%get-signed-word)
 			    (:signed-byte '%get-signed-byte)
-			    (:unsigned-doubleword '%%get-unsigned-longlong)
+			    (:unsigned-doubleword (incf offset 4)
+						  '%%get-unsigned-longlong)
 			    (:unsigned-fullword '%get-unsigned-long)
 			    (:unsigned-halfword '%get-unsigned-word)
 			    (:unsigned-byte '%get-unsigned-byte)
 			    (:address '%get-ptr))
-			  ,stack-ptr)))))))))
+			  ,stack-ptr
+			  ,offset)))))))))
 
 (defun x86-darwin32::generate-callback-return-value (stack-ptr fp-args-ptr result return-type struct-return-arg)
