diff --git a/src/INSTALLvms.txt b/src/INSTALLvms.txt
index 512b665..1de2980 100644
--- a/src/INSTALLvms.txt
+++ b/src/INSTALLvms.txt
@@ -1,7 +1,7 @@
 INSTALLvms.txt - Installation of Vim on OpenVMS
 
 Maintainer:   Zoltan Arpadffy <arpadffy@polarhome.com>
-Last change:  2006 Apr 30
+Last change:  2007 May 07
 
 This file contains instructions for compiling Vim on Openvms.
 If you already have an executable version of Vim, you don't need this.
@@ -56,7 +56,7 @@
      GTK libraries.
 
 NOTE: procedure in chapter 1 describes source code preparation from multi OS
-code,however it is available OpenVMS oprimized (and tested) source code from:
+code, however it is available OpenVMS optimized (and tested) source code from:
 ftp://ftp.polarhome.com/pub/vim/source/vms/
 (http://www.polarhome.com/vim/files/source/vms/)
 
@@ -326,7 +326,7 @@
 	gtk_root:[gtk.gtk]libgtk.exe /share
 
      During runtime it is suggested to have all these files installed and
-     copyed to SYS$LIBRARY: to be able to use it without problems.
+     copied to SYS$LIBRARY: to be able to use it without problems.
      Also VMS_JACKETS.EXE from OpenVMS Porting Library.
 
      Please note, that GTK uses /name=(as_is,short)/float=ieee/ieee=denorm
diff --git a/src/if_ruby.c b/src/if_ruby.c
index 417c44b..6bb8b80 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -926,7 +926,10 @@
     objtbl = rb_hash_new();
     rb_global_variable(&objtbl);
 
-    mVIM = rb_define_module("VIM");
+    /* The Vim module used to be called "VIM", but "Vim" is better.  Make an
+     * alias "VIM" for backwards compatiblity. */
+    mVIM = rb_define_module("Vim");
+    rb_define_const(rb_cObject, "VIM", mVIM);
     rb_define_const(mVIM, "VERSION_MAJOR", INT2NUM(VIM_VERSION_MAJOR));
     rb_define_const(mVIM, "VERSION_MINOR", INT2NUM(VIM_VERSION_MINOR));
     rb_define_const(mVIM, "VERSION_BUILD", INT2NUM(VIM_VERSION_BUILD));
diff --git a/src/main.aap b/src/main.aap
index ca199c6..b224058 100644
--- a/src/main.aap
+++ b/src/main.aap
@@ -259,7 +259,7 @@
 # messages.  Don't worry about that.
 # If there is a real error, there will be a difference between "test.out" and
 # a "test99.ok" file.
-# If everything is allright, the final message will be "ALL DONE".
+# If everything is alright, the final message will be "ALL DONE".
 #
 test check:
     VimProg = ../$Target
@@ -351,7 +351,7 @@
 $Source version.c : auto/osdef.h
 
 # Need to mention that the target also depends on version.c, since it's not
-# inluded in $Source
+# included in $Source
 $Target : version.c
 
 # Some sources are to be found in the "auto" directory.
diff --git a/src/mark.c b/src/mark.c
index 8a3d108..764ad36 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -215,7 +215,7 @@
 
 	/*
 	 * if first CTRL-O or CTRL-I command after a jump, add cursor position
-	 * to list.  Careful: If there are duplicates (CTRL-O immidiately after
+	 * to list.  Careful: If there are duplicates (CTRL-O immediately after
 	 * starting Vim on a file), another entry may have been removed.
 	 */
 	if (curwin->w_jumplistidx == curwin->w_jumplistlen)
diff --git a/src/normal.c b/src/normal.c
index 51cbd32..cdd34a5 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -2716,7 +2716,7 @@
 
 #ifdef FEAT_VISUAL
     /* Set global flag that we are extending the Visual area with mouse
-     * dragging; temporarily mimimize 'scrolloff'. */
+     * dragging; temporarily minimize 'scrolloff'. */
     if (VIsual_active && is_drag && p_so)
     {
 	/* In the very first line, allow scrolling one line */
@@ -3834,7 +3834,8 @@
     }
 
     /*
-     * clear the rest of an old message by outputing up to SHOWCMD_COLS spaces
+     * clear the rest of an old message by outputting up to SHOWCMD_COLS
+     * spaces
      */
     screen_puts((char_u *)"          " + len, (int)Rows - 1, sc_col + len, 0);
 
@@ -5704,7 +5705,7 @@
 # ifdef FEAT_VIRTUALEDIT
     /*
      * In virtual mode, there's no such thing as "PAST_LINE", as lines are
-     * (theoretically) infinitly long.
+     * (theoretically) infinitely long.
      */
     if (virtual_active())
 	PAST_LINE = 0;
@@ -6176,8 +6177,8 @@
 
 #ifdef FEAT_FIND_ID
     /*
-     * Find the occurence(s) of the identifier or define under cursor
-     * in current and included files or jump to the first occurence.
+     * Find the occurrence(s) of the identifier or define under cursor
+     * in current and included files or jump to the first occurrence.
      *
      *			search	     list	    jump
      *		      fwd   bwd    fwd	 bwd	 fwd	bwd
@@ -7963,7 +7964,7 @@
 	break;
 
     /*
-     * "gd": Find first occurence of pattern under the cursor in the
+     * "gd": Find first occurrence of pattern under the cursor in the
      *	 current function
      * "gD": idem, but in the current file.
      */
diff --git a/src/spell.c b/src/spell.c
index e393817..4e5e7c6 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -8226,7 +8226,7 @@
 	putc(SN_NOBREAK, fd);				/* <sectionID> */
 	putc(0, fd);					/* <sectionflags> */
 
-	/* It's empty, the precense of the section flags the feature. */
+	/* It's empty, the presence of the section flags the feature. */
 	put_bytes(fd, (long_u)0, 4);			/* <sectionlen> */
     }
 
@@ -11554,7 +11554,7 @@
 		if (soundfold)
 		{
 		    /* For soundfolded words we need to find the original
-		     * words, the edit distrance and then add them. */
+		     * words, the edit distance and then add them. */
 		    add_sound_suggest(su, preword, sp->ts_score, lp);
 		}
 		else
@@ -14666,7 +14666,7 @@
     goodlen = (int)STRLEN(goodsound);
     badlen = (int)STRLEN(badsound);
 
-    /* Return quickly if the lenghts are too different to be fixed by two
+    /* Return quickly if the lengths are too different to be fixed by two
      * changes. */
     n = goodlen - badlen;
     if (n < -2 || n > 2)
@@ -14862,7 +14862,7 @@
     char_u	*goodword;
 {
     int		*cnt;
-    int		badlen, goodlen;	/* lenghts including NUL */
+    int		badlen, goodlen;	/* lengths including NUL */
     int		j, i;
     int		t;
     int		bc, gc;
