diff --git a/src/evalfunc.c b/src/evalfunc.c
index 3207441..e89bc30 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -6874,7 +6874,7 @@
 	return;
 
 #ifdef FEAT_LIBCALL
-    /* The first two args must be strings, otherwise its meaningless */
+    /* The first two args must be strings, otherwise it's meaningless */
     if (argvars[0].v_type == VAR_STRING && argvars[1].v_type == VAR_STRING)
     {
 	string_in = NULL;
diff --git a/src/main.aap b/src/main.aap
index 452cd97..bedbbb5 100644
--- a/src/main.aap
+++ b/src/main.aap
@@ -69,7 +69,7 @@
                     --with-mac-arch=$arch
                     --cache-file=auto/config.cache
 
-    # Configure arguments: create an empty "config.arg" file when its missing
+    # Configure arguments: create an empty "config.arg" file when it's missing
     config.arg:
         :touch {exist} config.arg
 
diff --git a/src/nbdebug.c b/src/nbdebug.c
index c553d25..7c97681 100644
--- a/src/nbdebug.c
+++ b/src/nbdebug.c
@@ -41,7 +41,7 @@
 
 /*
  * nbdebug_wait	-   This function can be used to delay or stop execution of vim.
- *		    Its normally used to delay startup while attaching a
+ *		    It's normally used to delay startup while attaching a
  *		    debugger to a running process. Since workshop starts gvim
  *		    from a background process this is the only way to debug
  *		    startup problems.
diff --git a/src/netbeans.c b/src/netbeans.c
index 7ad812d..cc55604 100644
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -2156,7 +2156,7 @@
 	else if (streq((char *)cmd, "save"))
 	{
 	    /*
-	     * NOTE - This command is obsolete wrt NetBeans. Its left in
+	     * NOTE - This command is obsolete wrt NetBeans. It's left in
 	     * only for historical reasons.
 	     */
 	    if (buf == NULL || buf->bufp == NULL)
@@ -2242,7 +2242,7 @@
 
     /*
      * Is this needed? I moved the netbeans_Xt_connect() later during startup
-     * and it may no longer be necessary. If its not needed then needupdate
+     * and it may no longer be necessary. If it's not needed then needupdate
      * and do_update can also be removed.
      */
     if (buf != NULL && buf->initDone && do_update)
@@ -2856,7 +2856,7 @@
 }
 
 /*
- * Send a button release event back to netbeans. Its up to netbeans
+ * Send a button release event back to netbeans. It's up to netbeans
  * to decide what to do (if anything) with this event.
  */
     void
@@ -3453,7 +3453,7 @@
 
 
 /*
- * This message is printed after NetBeans opens a new file. Its
+ * This message is printed after NetBeans opens a new file. It's
  * similar to the message readfile() uses, but since NetBeans
  * doesn't normally call readfile, we do our own.
  */
diff --git a/src/quickfix.c b/src/quickfix.c
index 2f5256b..51c894b 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -3569,7 +3569,7 @@
 	STRCAT(name, p + 2);
 	if (mch_getperm(name) < 0
 #ifdef HAVE_LSTAT
-		    /* Don't accept a symbolic link, its a security risk. */
+		    /* Don't accept a symbolic link, it's a security risk. */
 		    && mch_lstat((char *)name, &sb) < 0
 #endif
 		)
diff --git a/src/version.c b/src/version.c
index 036e99a..695c281 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    12,
+/**/
     11,
 /**/
     10,
diff --git a/src/workshop.c b/src/workshop.c
index c1a3198..0b9774f 100644
--- a/src/workshop.c
+++ b/src/workshop.c
@@ -71,7 +71,7 @@
 
 /*
  * The following enum is from <gp_dbx/gp_dbx_common.h>. We can't include it
- * here because its C++.
+ * here because it's C++.
  */
 enum
 {
@@ -1752,7 +1752,7 @@
  *			directory. This is a Sun Visual WorkShop requirement!
  *
  * Note:		We override a user's $VIM because it won't have the
- *			WorkShop specific files. S/he may not like this but its
+ *			WorkShop specific files. S/he may not like this but it's
  *			better than getting the wrong files (especially as the
  *			user is likely to have $VIM set to 5.4 or later).
  */
diff --git a/src/wsdebug.c b/src/wsdebug.c
index 66b378c..4bb7205 100644
--- a/src/wsdebug.c
+++ b/src/wsdebug.c
@@ -47,7 +47,7 @@
 
 /*
  * wsdebug_wait	-   This function can be used to delay or stop execution of vim.
- *		    Its normally used to delay startup while attaching a
+ *		    It's normally used to delay startup while attaching a
  *		    debugger to a running process. Since workshop starts gvim
  *		    from a background process this is the only way to debug
  *		    startup problems.
