diff -rNu /opt/local/var/macports/sources/rsync.macports.org/release/ports/editors/emacs/Portfile /Users/dan/localports/editors/emacs/Portfile
--- /opt/local/var/macports/sources/rsync.macports.org/release/ports/editors/emacs/Portfile	2009-09-10 15:52:45.000000000 -0400
+++ /Users/dan/localports/editors/emacs/Portfile	2009-11-29 00:31:35.000000000 -0500
@@ -21,7 +21,9 @@
 master_sites    gnu
 checksums       md5 aa8ba34f548cd78b35914ae5a7bb87eb
 patchfiles	patch-Makefile.in.diff \
-		patch-leim-Makefile.in.diff
+		patch-leim-Makefile.in.diff \
+		patch-unexmacosx.c.diff \
+		patch-s-darwin.h.diff 
 configure.args  --without-x \
                 --without-carbon
 
diff -rNu /opt/local/var/macports/sources/rsync.macports.org/release/ports/editors/emacs/files/patch-s-darwin.h.diff /Users/dan/localports/editors/emacs/files/patch-s-darwin.h.diff
--- /opt/local/var/macports/sources/rsync.macports.org/release/ports/editors/emacs/files/patch-s-darwin.h.diff	1969-12-31 19:00:00.000000000 -0500
+++ /Users/dan/localports/editors/emacs/files/patch-s-darwin.h.diff	2009-11-29 00:30:41.000000000 -0500
@@ -0,0 +1,13 @@
+--- src/s/darwin.h	2009/02/04 11:31:30	1.53
++++ src/s/darwin.h	2009/08/28 22:49:58	1.54
+@@ -171,6 +171,9 @@
+ #define malloc unexec_malloc
+ #define realloc unexec_realloc
+ #define free unexec_free
++/* Don't use posix_memalign because it is not compatible with
++   unexmacosx.c.  */
++#undef HAVE_POSIX_MEMALIGN
+ #endif
+ 
+ /* The ncurses library has been moved out of the System framework in
+
diff -rNu /opt/local/var/macports/sources/rsync.macports.org/release/ports/editors/emacs/files/patch-unexmacosx.c.diff /Users/dan/localports/editors/emacs/files/patch-unexmacosx.c.diff
--- /opt/local/var/macports/sources/rsync.macports.org/release/ports/editors/emacs/files/patch-unexmacosx.c.diff	1969-12-31 19:00:00.000000000 -0500
+++ /Users/dan/localports/editors/emacs/files/patch-unexmacosx.c.diff	2009-11-29 00:29:08.000000000 -0500
@@ -0,0 +1,76 @@
+--- src/unexmacosx.c	2009/01/08 03:16:02	1.29
++++ src/unexmacosx.c	2009/08/28 22:49:46	1.30
+@@ -582,6 +582,14 @@
+       printf ("LC_UUID          ");
+       break;
+ #endif
++#ifdef LC_DYLD_INFO
++    case LC_DYLD_INFO:
++      printf ("LC_DYLD_INFO     ");
++      break;
++    case LC_DYLD_INFO_ONLY:
++      printf ("LC_DYLD_INFO_ONLY");
++      break;
++#endif
+     default:
+       printf ("unknown          ");
+     }
+@@ -819,6 +827,7 @@
+ 	       || strncmp (sectp->sectname, "__const", 16) == 0
+ 	       || strncmp (sectp->sectname, "__cfstring", 16) == 0
+ 	       || strncmp (sectp->sectname, "__gcc_except_tab", 16) == 0
++	       || strncmp (sectp->sectname, "__program_vars", 16) == 0
+ 	       || strncmp (sectp->sectname, "__objc_", 7) == 0)
+ 	{
+ 	  if (!unexec_copy (sectp->offset, old_file_offset, sectp->size))
+@@ -1086,6 +1095,36 @@
+   curr_header_offset += lc->cmdsize;
+ }
+ 
++#ifdef LC_DYLD_INFO
++/* Copy a LC_DYLD_INFO(_ONLY) load command from the input file to the output
++   file, adjusting the file offset fields.  */
++static void
++copy_dyld_info (struct load_command *lc, long delta)
++{
++  struct dyld_info_command *dip = (struct dyld_info_command *) lc;
++
++  if (dip->rebase_off > 0)
++    dip->rebase_off += delta;
++  if (dip->bind_off > 0)
++    dip->bind_off += delta;
++  if (dip->weak_bind_off > 0)
++    dip->weak_bind_off += delta;
++  if (dip->lazy_bind_off > 0)
++    dip->lazy_bind_off += delta;
++  if (dip->export_off > 0)
++    dip->export_off += delta;
++
++  printf ("Writing ");
++  print_load_command_name (lc->cmd);
++  printf (" command\n");
++
++  if (!unexec_write (curr_header_offset, lc, lc->cmdsize))
++    unexec_error ("cannot write dyld info command to header");
++
++  curr_header_offset += lc->cmdsize;
++}
++#endif
++
+ /* Copy other kinds of load commands from the input file to the output
+    file, ones that do not require adjustments of file offsets.  */
+ static void
+@@ -1152,6 +1191,12 @@
+       case LC_TWOLEVEL_HINTS:
+ 	copy_twolevelhints (lca[i], linkedit_delta);
+ 	break;
++#ifdef LC_DYLD_INFO
++      case LC_DYLD_INFO:
++      case LC_DYLD_INFO_ONLY:
++	copy_dyld_info (lca[i], linkedit_delta);
++	break;
++#endif
+       default:
+ 	copy_other (lca[i]);
+ 	break;
+
