Index: /trunk/ccl/lib/db-io.lisp
===================================================================
--- /trunk/ccl/lib/db-io.lisp	(revision 4971)
+++ /trunk/ccl/lib/db-io.lisp	(revision 4972)
@@ -1241,7 +1241,9 @@
 		      `(#\l)
 		      '(#\?)))))))))))
-    ((:struct :union) #+eabi-target `(#\a)
-     #+poweropen-target (if return-value-p `(#\a)
-			  `(#\r ,@(encode-name (ffi-struct-reference (cadr spec))))))
+    ((:struct :union)
+     (if (getf (ftd-attributes *target-ftd*) :struct-by-value)
+       (if return-value-p `(#\a)
+			  `(#\r ,@(encode-name (ffi-struct-reference (cadr spec)))))
+       `(#\a)))
     (:typedef
      (let* ((typedef (cadr spec))
