diff --git a/src/ex_eval.c b/src/ex_eval.c
index 441e98d..f0f42d2 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -80,7 +80,7 @@
 static int cause_abort = FALSE;
 
 /*
- * Return TRUE when immdediately aborting on error, or when an interrupt
+ * Return TRUE when immediately aborting on error, or when an interrupt
  * occurred or an exception was thrown but not caught.  Use for ":{range}call"
  * to check whether an aborted function that does not handle a range itself
  * should be called again for the next line in the range.  Also used for
@@ -2191,9 +2191,9 @@
 	    break;
 
 	/*
-	 * When leaving a try conditinal that reset "emsg_silent" on its entry
-	 * after saving the original value, restore that value here and free the
-	 * memory used to store it.
+	 * When leaving a try conditional that reset "emsg_silent" on its
+	 * entry after saving the original value, restore that value here and
+	 * free the memory used to store it.
 	 */
 	if ((cstack->cs_flags[idx] & CSF_TRY)
 		&& (cstack->cs_flags[idx] & CSF_SILENT))
diff --git a/src/ex_getln.c b/src/ex_getln.c
index a7de050..b1afab5 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -2849,7 +2849,7 @@
 }
 
 /*
- * Resture ccline after it has been saved with save_cmdline().
+ * Restore ccline after it has been saved with save_cmdline().
  */
     static void
 restore_cmdline(ccp)
@@ -3039,7 +3039,7 @@
 #endif
 
 /*
- * this fuction is called when the screen size changes and with incremental
+ * this function is called when the screen size changes and with incremental
  * search
  */
     void
@@ -6026,7 +6026,7 @@
     apply_autocmds(EVENT_CMDWINLEAVE, typestr, typestr, FALSE, curbuf);
 # endif
 
-    /* Restore the comand line info. */
+    /* Restore the command line info. */
     ccline = save_ccline;
     cmdwin_type = 0;
 
diff --git a/src/gui_photon.c b/src/gui_photon.c
index 3408ba6..a8ee1c4 100644
--- a/src/gui_photon.c
+++ b/src/gui_photon.c
@@ -288,7 +288,7 @@
 
     height = sizes->new_dim.h;
 
-    /* Because vim treats the toolbar and menubar separatly,
+    /* Because vim treats the toolbar and menubar separately,
      * and here they're lumped together into a PtToolbarGroup,
      * we only need either menu_height or toolbar_height set at once */
     if( gui.menu_is_active )
@@ -740,7 +740,7 @@
 
 #if 0
     /*
-     * This causes some wierd probems, with drawing being done from
+     * This causes some weird problems, with drawing being done from
      * within this raw drawing function (rather than just simple clearing
      * and text drawing done by gui_redraw)
      *
@@ -1116,7 +1116,7 @@
     PtArg_t args[10];
     int	    flags = 0, n = 0;
 
-    PhDim_t	window_size = {100, 100}; /* Abitrary values */
+    PhDim_t	window_size = {100, 100}; /* Arbitrary values */
     PhPoint_t	pos = {0, 0};
 
     gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
@@ -1978,7 +1978,7 @@
 
 
 /*
- * This should be split out into a seperate file,
+ * This should be split out into a separate file,
  * every port does basically the same thing.
  *
  * This is the gui_w32.c version (i think..)
diff --git a/src/termlib.c b/src/termlib.c
index a0036c6..2091115 100644
--- a/src/termlib.c
+++ b/src/termlib.c
@@ -8,7 +8,7 @@
 /* Modified by Bram Moolenaar for use with VIM - Vi Improved. */
 /* A few bugs removed by Olaf 'Rhialto' Seibert. */
 
-/* TERMLIB: Terminal independant database. */
+/* TERMLIB: Terminal independent database. */
 
 #include "vim.h"
 #include "termlib.pro"
@@ -155,7 +155,7 @@
 	{
 	    char    *nexttptr;
 
-	    while (*tptr == '|')		/* | seperates names */
+	    while (*tptr == '|')		/* | separates names */
 		tptr++;
 	    nexttptr = _find(tptr, ":|");	/* Rhialto */
 	    if (tptr + tlen == nexttptr &&
diff --git a/src/version.c b/src/version.c
index c0f9b4b..ddee207 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,8 +667,6 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
-    1,
-/**/
     0
 };
 
diff --git a/src/version.h b/src/version.h
index 97500d0..4400863 100644
--- a/src/version.h
+++ b/src/version.h
@@ -10,7 +10,7 @@
  * Define the version number, name, etc.
  * The patchlevel is in included_patches[], in version.c.
  *
- * This doesn't use string contatenation, some compilers don't support it.
+ * This doesn't use string concatenation, some compilers don't support it.
  */
 
 #define VIM_VERSION_MAJOR		 7
@@ -19,9 +19,9 @@
 #define VIM_VERSION_MINOR_STR		"1"
 #define VIM_VERSION_100	    (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR)
 
-#define VIM_VERSION_BUILD		 263
-#define VIM_VERSION_BUILD_BCD		0x107
-#define VIM_VERSION_BUILD_STR		"263"
+#define VIM_VERSION_BUILD		 264
+#define VIM_VERSION_BUILD_BCD		0x108
+#define VIM_VERSION_BUILD_STR		"264"
 #define VIM_VERSION_PATCHLEVEL		 0
 #define VIM_VERSION_PATCHLEVEL_STR	"0"
 /* Used by MacOS port should be one of: development, alpha, beta, final */
@@ -33,8 +33,8 @@
  * VIM_VERSION_MEDIUM is used for the startup-screen.
  * VIM_VERSION_LONG is used for the ":version" command and "Vim -h".
  */
-#define VIM_VERSION_NODOT	"vim71a"
-#define VIM_VERSION_SHORT	"7.1a"
-#define VIM_VERSION_MEDIUM	"7.1a BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.1a BETA (2007 May 5)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.1a BETA (2007 May 5, compiled "
+#define VIM_VERSION_NODOT	"vim71b"
+#define VIM_VERSION_SHORT	"7.1b"
+#define VIM_VERSION_MEDIUM	"7.1b BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.1b BETA (2007 May 10)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.1b BETA (2007 May 10, compiled "
