Index: /trunk/source/level-0/l0-cfm-support.lisp
===================================================================
--- /trunk/source/level-0/l0-cfm-support.lisp	(revision 15354)
+++ /trunk/source/level-0/l0-cfm-support.lisp	(revision 15355)
@@ -711,6 +711,8 @@
           (when (%simple-string= name shlibname 0 0 namelen shlibnamelen)
             (unless (shlib.base lib)
-              (setf (shlib.base lib) addr
-                    (shlib.soname lib) (soname-from-mach-header addr)))
+              (setf (shlib.base lib) addr)
+              (let* ((soname  (soname-from-mach-header addr)))
+                (when soname
+                  (setf (shlib.soname lib) soname))))
             (return lib))))))))
 
@@ -746,5 +748,5 @@
            (nameptr (ff-call *dyld-get-image-name* :unsigned-fullword i :address))
            (name (%get-cstring nameptr ))
-           (lib (%cons-shlib (soname-from-mach-header addr) name nil addr)))
+           (lib (%cons-shlib (or (soname-from-mach-header addr) name) name nil addr)))
       (setf (shlib.handle lib)
             (ff-call *dlopen-entry* :address nameptr :unsigned-fullword (logior #$RTLD_GLOBAL #$RTLD_NOLOAD)))
