diff --git a/src/option.c b/src/option.c
index 14d40c9aefbc387240ad00a95571e52b3b5f8075..e49d9326cfb3a8a63fffdc0328ffd8f3b73c89b9 100644
--- a/src/option.c
+++ b/src/option.c
@@ -6530,21 +6530,24 @@ compile_cap_prog(buf)
     buf_T	*buf;
 {
     regprog_T   *rp = buf->b_cap_prog;
+    char_u	*re;
 
     if (*buf->b_p_spc == NUL)
-    {
 	buf->b_cap_prog = NULL;
-	vim_free(rp);
-	return NULL;
-    }
-
-    /* Prepend a ^ so that we only match at one column */
-    vim_snprintf((char *)IObuff, IOSIZE, "^%s", buf->b_p_spc);
-    buf->b_cap_prog = vim_regcomp(IObuff, RE_MAGIC);
-    if (buf->b_cap_prog == NULL)
+    else
     {
-	buf->b_cap_prog = rp;
-	return e_invarg;
+	/* Prepend a ^ so that we only match at one column */
+	re = concat_str((char_u *)"^", buf->b_p_spc);
+	if (re != NULL)
+	{
+	    buf->b_cap_prog = vim_regcomp(re, RE_MAGIC);
+	    if (buf->b_cap_prog == NULL)
+	    {
+		buf->b_cap_prog = rp; /* restore the previous program */
+		return e_invarg;
+	    }
+	    vim_free(re);
+	}
     }
 
     vim_free(rp);
diff --git a/src/version.h b/src/version.h
index abd2d279989918238a954ff1299c7924daa8bd8f..c38bb8e8c5ed7929c8ca0d1e6dc72b89b73f910c 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 Dec 7)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 7, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 8)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 8, compiled "