diff --git a/init/body-expand.lisp b/init/body-expand.lisp
index 8d617279850a41387050462b81e83d70e3071599..99a62ea5b7949927247c208af60577eb2559e47d 100644
--- a/init/body-expand.lisp
+++ b/init/body-expand.lisp
@@ -1,6 +1,6 @@
 ;; Expand the body of a defmfun
 ;; Liam Healy 2009-04-13 22:07:13EDT body-expand.lisp
-;; Time-stamp: <2010-11-27 13:54:41EST body-expand.lisp>
+;; Time-stamp: <2010-11-27 22:08:19EST body-expand.lisp>
 ;;
 ;; Copyright 2009, 2010 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
@@ -86,21 +86,17 @@
   "Generate a form that calls the appropriate converter from C/GSL to CL."
   (or 
    #+fsbv
-   (if (member (grid:st-actual-type decl) fsbv::*libffi-struct-defs*)
+   (if (fsbv:converter-defined-p (grid:st-actual-type decl))
        `((fsbv:object ,(grid:st-symbol decl) ',(grid:st-actual-type decl))))
    #-fsbv nil
    (case (grid:st-actual-type decl)
      (sf-result 
-      `((val ,(grid:st-symbol decl))
-	(err ,(grid:st-symbol decl))))
+	`((val ,(grid:st-symbol decl))
+	  (err ,(grid:st-symbol decl))))
      (sf-result-e10
-      `((val ,(grid:st-symbol decl) 'sf-result-e10)
-	(e10 ,(grid:st-symbol decl))
-	(err ,(grid:st-symbol decl) 'sf-result-e10)))
-     (grid:complex-double-c
-      `((grid:complex-to-cl ,(grid:st-symbol decl) 'grid:complex-double-c)))
-     (grid:complex-float-c
-      `((grid:complex-to-cl ,(grid:st-symbol decl) 'grid:complex-float-c)))
+	`((val ,(grid:st-symbol decl) 'sf-result-e10)
+	  (e10 ,(grid:st-symbol decl))
+	  (err ,(grid:st-symbol decl) 'sf-result-e10)))
      (t `((cffi:mem-aref ,(grid:st-symbol decl) ',(grid:st-actual-type decl)))))))
 
 (defun body-expand (name arglist gsl-name c-arguments key-args)
@@ -214,4 +210,3 @@
 		 (not return-supplied-p))
 	    (and (null return) return-supplied-p))
 	 clret))))
-