diff --git a/src/Makefile b/src/Makefile
index 9345d10..ecf7bf8 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -546,7 +546,7 @@
 # Requires installing the ccmalloc library.
 # Configuration is in the .ccmalloc or ~/.ccmalloc file.
 # Doesn't work very well, since memory linked to from global variables
-# (indirectly) is also marked as leaked memory.
+# (in libraries) is also marked as leaked memory.
 #PROFILE_CFLAGS = -DEXITFREE
 #PROFILE_LIBS = -lccmalloc
 
@@ -2518,32 +2518,34 @@
 
 install_macosx: gui_bundle
 # Remove the link to the runtime dir, don't want to copy all of that.
-	-rm $(APPDIR)/runtime
+	-rm $(RESDIR)/vim/runtime
 	$(INSTALL_DATA_R) $(APPDIR) $(DESTDIR)$(prefix)
 # Install the runtime files.  Recursive!
-	-mkdir $(DESTDIR)$(prefix)/$(APPDIR)/runtime
-	-mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin
+	-mkdir -p $(DESTDIR)$(prefix)/$(RESDIR)/vim/runtime
+#	-mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin
 	srcdir=`pwd`; $(MAKE) -f Makefile installruntime \
 		VIMEXE=$$srcdir/$(VIMTARGET) \
-		prefix=$(DESTDIR)$(prefix)/$(APPDIR) \
-		VIMRTLOC=$(DESTDIR)$(prefix)/$(APPDIR)/runtime
+		prefix=$(DESTDIR)$(prefix)/$(RESDIR)/vim \
+		VIMRTLOC=$(DESTDIR)$(prefix)/$(RESDIR)/vim/runtime
 # Put the link back.
-	ln -s `pwd`/../runtime $(APPDIR)
+	ln -s `pwd`/../runtime $(RESDIR)/vim
 # TODO: Create the vimtutor application.
 
-gui_bundle: $(APPDIR) bundle-dir bundle-executable bundle-info bundle-resource \
+gui_bundle: $(RESDIR) bundle-dir bundle-executable bundle-info bundle-resource \
 	bundle-language
 
-$(APPDIR):
+$(RESDIR):
 	mkdir -p $@
 
 bundle-dir: $(APPDIR)/Contents $(VIMTARGET)
 	-@srcdir=`pwd`; cd $(HELPSOURCE); $(MAKE) VIMEXE=$$srcdir/$(VIMTARGET) vimtags
 # Make a link to the runtime directory, so that we can try out the executable
 # without installing it.
-	-ln -s `pwd`/../runtime $(APPDIR)
+	mkdir -p $(RESDIR)/vim
+	-ln -s `pwd`/../runtime $(RESDIR)/vim
 
 bundle-executable: $(VIMTARGET)
+	mkdir -p $(APPDIR)/Contents/MacOS
 	cp $(VIMTARGET) $(APPDIR)/Contents/MacOS/$(VIMTARGET)
 
 bundle-info:  bundle-dir
diff --git a/src/fileio.c b/src/fileio.c
index 8626f60..5dd502c 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1595,7 +1595,7 @@
 	    }
 	    else
 # endif
-# ifdef MACOS_X
+# ifdef MACOS_CONVERT
 	    if (fio_flags & FIO_MACROMAN)
 	    {
 		/*
@@ -5043,7 +5043,7 @@
 	}
 # endif
 
-# ifdef MACOS_X
+# ifdef MACOS_CONVERT
 	else if (flags & FIO_MACROMAN)
 	{
 	    /*
@@ -6407,6 +6407,11 @@
 	/* Reload the buffer. */
 	buf_reload(buf, orig_mode);
 
+#ifdef FEAT_AUTOCMD
+    if (buf_valid(buf))
+	(void)apply_autocmds(EVENT_FILECHANGEDSHELLPOST,
+				      buf->b_fname, buf->b_fname, FALSE, buf);
+#endif
 #ifdef FEAT_GUI
     /* restore this in case an autocommand has set it; it would break
      * 'mousefocus' */
@@ -6959,6 +6964,7 @@
     {"FileAppendPre",	EVENT_FILEAPPENDPRE},
     {"FileAppendCmd",	EVENT_FILEAPPENDCMD},
     {"FileChangedShell",EVENT_FILECHANGEDSHELL},
+    {"FileChangedShellPost",EVENT_FILECHANGEDSHELLPOST},
     {"FileChangedRO",	EVENT_FILECHANGEDRO},
     {"FileReadPost",	EVENT_FILEREADPOST},
     {"FileReadPre",	EVENT_FILEREADPRE},
@@ -7001,6 +7007,7 @@
     {"VimLeavePre",	EVENT_VIMLEAVEPRE},
     {"WinEnter",	EVENT_WINENTER},
     {"WinLeave",	EVENT_WINLEAVE},
+    {"VimResized",	EVENT_VIMRESIZED},
     {NULL,		(event_T)0}
 };
 
@@ -8363,7 +8370,8 @@
     /*
      * FileChangedShell never nests, because it can create an endless loop.
      */
-    if (filechangeshell_busy && event == EVENT_FILECHANGEDSHELL)
+    if (filechangeshell_busy && (event == EVENT_FILECHANGEDSHELL
+				      || event == EVENT_FILECHANGEDSHELLPOST))
 	goto BYPASS_AU;
 
     /*
diff --git a/src/mbyte.c b/src/mbyte.c
index a27649a..13d3fa6 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -5931,7 +5931,7 @@
 		*lenp = (int)(d - retval);
 	    break;
 
-# ifdef MACOS_X
+# ifdef MACOS_CONVERT
 	case CONV_MAC_LATIN1:
 	    retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail,
 					'm', 'l', unconvlenp);
diff --git a/src/os_unix.c b/src/os_unix.c
index 3f9bd13..1072b8e 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -1090,7 +1090,7 @@
     out_flush();
     set_signals();
 
-#if defined(MACOS_X) && defined(FEAT_MBYTE)
+#ifdef MACOS_CONVERT
     mac_conv_init();
 #endif
 }
@@ -2868,7 +2868,7 @@
 	gui_exit(r);
 #endif
 
-#if defined(MACOS_X) && defined(FEAT_MBYTE)
+#ifdef MACOS_CONVERT
     mac_conv_cleanup();
 #endif
 
diff --git a/src/proto/diff.pro b/src/proto/diff.pro
index d0f05fb..e45127a 100644
--- a/src/proto/diff.pro
+++ b/src/proto/diff.pro
@@ -15,6 +15,7 @@
 int diff_check_fill __ARGS((win_T *wp, linenr_T lnum));
 void diff_set_topline __ARGS((win_T *fromwin, win_T *towin));
 int diffopt_changed __ARGS((void));
+int diffopt_horizontal __ARGS((void));
 int diff_find_change __ARGS((win_T *wp, linenr_T lnum, int *startp, int *endp));
 int diff_infold __ARGS((win_T *wp, linenr_T lnum));
 void nv_diffgetput __ARGS((int put));
