updated for version 7.0152
diff --git a/src/edit.c b/src/edit.c
index d9bfb2f..e4370fc 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -3515,6 +3515,7 @@
 		compl_col = spell_word_start(startcol);
 	    if (compl_col >= (colnr_T)startcol)
 		return FAIL;
+	    spell_expand_check_cap(compl_col);
 	    compl_length = (int)curs_col - compl_col;
 	    compl_pattern = vim_strnsave(line + compl_col, compl_length);
 	    if (compl_pattern == NULL)
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 6ff5fc6..c5d1eb0 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -1971,7 +1971,9 @@
 	vim_free(padding);
 	pad_size = Columns;
 
-	padding = (int *)alloc(pad_size * sizeof(int));
+	/* Don't give an out-of-memory message here, it would call us
+	 * recursively. */
+	padding = (int *)lalloc(pad_size * sizeof(int), FALSE);
 	if (padding != NULL)
 	    for (i = 0; i < pad_size; i++)
 		padding[i] = gui.char_width;
@@ -2007,10 +2009,10 @@
 	    && (unicodebuf == NULL || len > unibuflen))
     {
 	vim_free(unicodebuf);
-	unicodebuf = (WCHAR *)alloc(len * sizeof(WCHAR));
+	unicodebuf = (WCHAR *)lalloc(len * sizeof(WCHAR), FALSE);
 
 	vim_free(unicodepdy);
-	unicodepdy = (int *)alloc(len * sizeof(int));
+	unicodepdy = (int *)lalloc(len * sizeof(int), FALSE);
 
 	unibuflen = len;
     }
@@ -2730,12 +2732,12 @@
 	dfltbutton = -1;
 
     /* Allocate array to hold the width of each button */
-    buttonWidths = (int *) lalloc(numButtons * sizeof(int), TRUE);
+    buttonWidths = (int *)lalloc(numButtons * sizeof(int), TRUE);
     if (buttonWidths == NULL)
 	return -1;
 
     /* Allocate array to hold the X position of each button */
-    buttonPositions = (int *) lalloc(numButtons * sizeof(int), TRUE);
+    buttonPositions = (int *)lalloc(numButtons * sizeof(int), TRUE);
     if (buttonPositions == NULL)
 	return -1;
 
diff --git a/src/proto/spell.pro b/src/proto/spell.pro
index facbfbc..87261a2 100644
--- a/src/proto/spell.pro
+++ b/src/proto/spell.pro
@@ -19,5 +19,6 @@
 void ex_spelldump __ARGS((exarg_T *eap));
 char_u *spell_to_word_end __ARGS((char_u *start, buf_T *buf));
 int spell_word_start __ARGS((int startcol));
+void spell_expand_check_cap __ARGS((colnr_T col));
 int expand_spelling __ARGS((linenr_T lnum, int col, char_u *pat, char_u ***matchp));
 /* vim: set ft=c : */
diff --git a/src/version.h b/src/version.h
index 70e2f4d..85bf690 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 29)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 29, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 30)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 30, compiled "