diff --git a/lisp/elf.c b/lisp/elf.c
index 9a208028b2dab0b984f29631f05b849e219e6a46..167a426bb6eb365be0938393c3d988308619bc5c 100644
--- a/lisp/elf.c
+++ b/lisp/elf.c
@@ -8,7 +8,7 @@
 
  Above changes put into main CVS branch. 05-Jul-2007.
 
- $Id: elf.c,v 1.28 2010/08/02 21:45:36 rtoy Exp $
+ $Id: elf.c,v 1.29 2010/08/02 21:59:43 rtoy Exp $
 */
 
 #include <stdio.h>
@@ -466,17 +466,18 @@ map_core_sections(const char *exec_name)
 		if (!strncmp(nambuf, section_names[j], 6)) {
 		    os_vm_address_t addr;
 		    /*
-		     * On Solaris, the section header sets the addr
-		     * field to 0 because the linker script says the
-		     * sections are NOTE sections.  Hence, we need to
-		     * look up the section addresses ourselves.
+                     * Found a core section. Map it!
                      *
-                     * For other systems, we don't care what the
-                     * address is.  We infer the address from the
-                     * segment name.
+                     * Although the segment may contain the correct
+                     * address for the start of the segment, we don't
+                     * care.  We infer the address from the segment
+                     * name.  (The names better be unique!!!!)  This
+                     * approach allows for a possibly simpler linking
+                     * operation because we don't have to figure out
+                     * how to get the linker to give segments the
+                     * correct address.
 		     */
 		    addr = section_addr[j];
-		    /* Found a core section. Map it! */
 		    if ((os_vm_address_t) os_map(exec_fd, sh.sh_offset,
 						 addr, sh.sh_size)
 			== (os_vm_address_t) -1) {
@@ -484,20 +485,20 @@ map_core_sections(const char *exec_name)
 			exit(-1);
 		    }
 		    switch(j) {
-		    case 0: /* Dynamic space. */
-		        /* Dynamic space variables are set in lisp.c. */
-			image_dynamic_space_size = sh.sh_size;
-			break;
-		    case 1: /* Static space. */
-			image_static_space_size = sh.sh_size;
-			break;
-		    case 2: /* Read-only space. */
-			image_read_only_space_size = sh.sh_size;
-			break;
-		    default:
-			/* Should never get here. */
-			abort();
-			break;
+                      case 0: /* Dynamic space. */
+                          /* Dynamic space variables are set in lisp.c. */
+                          image_dynamic_space_size = sh.sh_size;
+                          break;
+                      case 1: /* Static space. */
+                          image_static_space_size = sh.sh_size;
+                          break;
+                      case 2: /* Read-only space. */
+                          image_read_only_space_size = sh.sh_size;
+                          break;
+                      default:
+                          /* Should never get here. */
+                          abort();
+                          break;
 		    }
 
 		    sections_remaining--;
diff --git a/lisp/mach-o.c b/lisp/mach-o.c
index 3932069d12f52c38a6a2fc781fcfed89523e5259..66ea55e617216e0f59675484b08562d16b3d2702 100644
--- a/lisp/mach-o.c
+++ b/lisp/mach-o.c
@@ -1,5 +1,5 @@
 /*
- * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/mach-o.c,v 1.6 2010/08/02 21:45:36 rtoy Exp $
+ * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/mach-o.c,v 1.7 2010/08/02 21:59:43 rtoy Rel $
  *
  * This code was written by Raymond Toy as part of CMU Common Lisp and
  * has been placed in the public domain.
@@ -413,11 +413,17 @@ map_core_sections(const char *exec_name)
 #endif
 
         if (lc.cmd == LC_SEGMENT) {
-            /* Read the rest of the command, which is a segment command. */
+          /*
+           * Got a segment command, so read the rest of the command so
+           * we can see if it's the segment for one of our Lisp
+           * spaces.
+           */
 #ifdef DEBUG_MACH_O
             fprintf(stderr, "Reading next %ld bytes for SEGMENT\n", sizeof(sc) - sizeof(lc));
 #endif
+
             eread(exec_fd, &sc.segname, sizeof(sc) - sizeof(lc), __func__);
+
 #ifdef DEBUG_MACH_O
             fprintf(stderr, "LC_SEGMENT: name = %s\n", sc.segname);
 #endif
@@ -475,7 +481,7 @@ map_core_sections(const char *exec_name)
 #endif
             elseek(exec_fd, lc.cmdsize - sizeof(sc), SEEK_CUR, __func__);
         } else {
-            /* Seek to the next command */
+            /* Not a segment command, so seek to the next command */
 #ifdef DEBUG_MACH_O
             fprintf(stderr, "Seeking by %ld bytes\n", lc.cmdsize - sizeof(lc));
 #endif