Index: Backends/gtkairo/cairo-ffi.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/Backends/gtkairo/cairo-ffi.lisp,v
retrieving revision 1.6
diff -u -r1.6 cairo-ffi.lisp
--- Backends/gtkairo/cairo-ffi.lisp	28 Oct 2006 17:49:24 -0000	1.6
+++ Backends/gtkairo/cairo-ffi.lisp	28 Oct 2006 23:47:24 -0000
@@ -41,14 +41,8 @@
 	 ,@args)
        (defun ,wrapper ,argnames
 	 (multiple-value-prog1
-             ;; FIXME: This should probably go into with-cairo-floats.
-             ;; (see http://www.ircbrowse.com/channel/lisp/20061028?utime=3371045114#utime_requested)
-	     #-scl (,actual ,@argnames)
-	     #+scl 
-	     (ext:with-float-traps-masked (:underflow :overflow :inexact
-						      :divide-by-zero :invalid)
-	       (,actual ,@argnames))
-	     (let ((status (cairo_status ,(car argnames))))
+	     (,actual ,@argnames)
+	   (let ((status (cairo_status ,(car argnames))))
 	     (unless (eq status :success)
 	       (error "~A returned with status ~A" ,name status))))))))
 
Index: Backends/gtkairo/gtk-ffi.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/Backends/gtkairo/gtk-ffi.lisp,v
retrieving revision 1.7
diff -u -r1.7 gtk-ffi.lisp
--- Backends/gtkairo/gtk-ffi.lisp	13 May 2006 19:37:29 -0000	1.7
+++ Backends/gtkairo/gtk-ffi.lisp	28 Oct 2006 23:47:25 -0000
@@ -85,12 +95,19 @@
 ;; reset all options afterwards, I get lisp errors like f-p-i-o for, say,
 ;; (ATAN -13 13/2) in McCLIM.  Isn't SBCL responsible for calling C code
 ;; with the with the modes C code expects?  Or does cairo change them?
+#-(or scl cmu)
 (defmacro with-cairo-floats ((&optional) &body body)
   `(unwind-protect
        (progn
 	 #+sbcl (sb-int:set-floating-point-modes :traps nil)
 	 ,@body)
      #+sbcl (apply #'sb-int:set-floating-point-modes *normal-modes*)))
+;;;
+#+(or scl cmu)
+(defmacro with-cairo-floats ((&optional) &body body)
+  `(ext:with-float-traps-masked (:underflow :overflow :inexact
+					    :divide-by-zero :invalid)
+     ,@body))
 
 ;; Note: There's no need for locking in single threaded mode for most
 ;; functions, except that the main loop functions try to release the
