Index: /trunk/ccl/compiler/nx1.lisp
===================================================================
--- /trunk/ccl/compiler/nx1.lisp	(revision 5710)
+++ /trunk/ccl/compiler/nx1.lisp	(revision 5711)
@@ -1334,6 +1334,7 @@
 
 (defun nx1-ff-call-internal (address-expression arg-specs-and-result-spec operator )
-  (let* ((specs ())
+  (let* ((specs ())         
          (vals ())
+         (register-spec-seen nil)
 	 (darwin-target-p (or (eql operator (%nx1-operator poweropen-syscall))
 			      (eql operator (%nx1-operator poweropen-ff-call))))
@@ -1355,5 +1356,12 @@
             (push arg-keyword specs)
             (push value vals))
-	   (error "Unknown argument spec: ~s" arg-keyword))))
+          (if (eq arg-keyword :registers)
+            (if register-spec-seen
+              (error "duplicate :registers in ~s" arg-specs-and-result-spec)
+              (progn
+                (setq register-spec-seen t)
+                (push arg-keyword specs)
+                (push value vals)))
+            (error "Unknown argument spec: ~s" arg-keyword)))))
     (unless (or (eq result-spec :void)
 		(memq result-spec *arg-spec-keywords*))
