diff --git a/src/cindent.c b/src/cindent.c
index 176bc05..9b2b644 100644
--- a/src/cindent.c
+++ b/src/cindent.c
@@ -1854,8 +1854,8 @@
     // Handle C++ namespace.
     buf->b_ind_cpp_namespace = 0;
 
-    // Handle continuation lines containing conditions of if(), for() and
-    // while().
+    // Handle continuation lines containing conditions of if (), for () and
+    // while ().
     buf->b_ind_if_for_while = 0;
 
     // indentation for # comments
@@ -3317,7 +3317,7 @@
 			}
 
 			// Special trick: when expecting the while () after a
-			// do, line up with the while()
+			// do, line up with the while ()
 			//     do
 			//	    x = 1;
 			// ->  here
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 567b839..45ccb52 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -508,7 +508,7 @@
 		    i++;
 		break;
 	    case CMD_tabdo:
-		for( ; tp != NULL && i + 1 < eap->line1; tp = tp->tp_next)
+		for ( ; tp != NULL && i + 1 < eap->line1; tp = tp->tp_next)
 		    i++;
 		break;
 	    case CMD_argdo:
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 7a12032..8e36f8d 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -8736,7 +8736,7 @@
 	// If there are modifiers in the args, and it is not a keyup event and
 	// vkCode is not a modifier key, then we generate virtual modifier key
 	// messages before sending the actual key message.
-	if(mods && STRICMP(event, "keydown") == 0 && !isModKey)
+	if (mods && STRICMP(event, "keydown") == 0 && !isModKey)
 	{
 	    int n = 0;
 	    if (mods & MOD_MASK_SHIFT)
@@ -8769,7 +8769,7 @@
 	if (STRICMP(event, "keyup") == 0)
 	{
 	    inputs[0].ki.dwFlags = KEYEVENTF_KEYUP;
-	    if(!isModKey)
+	    if (!isModKey)
 		unwrapMods = TRUE;
 	}
 
diff --git a/src/macros.h b/src/macros.h
index a8c6e43..b41a818 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -240,7 +240,7 @@
 #define MB_CHARLEN(p)	    (has_mbyte ? mb_charlen(p) : (int)STRLEN(p))
 #define MB_CHAR2LEN(c)	    (has_mbyte ? mb_char2len(c) : 1)
 #define PTR2CHAR(p)	    (has_mbyte ? mb_ptr2char(p) : (int)*(p))
-#define MB_CHAR2BYTES(c, b) do { if (has_mbyte) (b) += (*mb_char2bytes)((c), (b)); else *(b)++ = (c); } while(0)
+#define MB_CHAR2BYTES(c, b) do { if (has_mbyte) (b) += (*mb_char2bytes)((c), (b)); else *(b)++ = (c); } while (0)
 
 #ifdef FEAT_AUTOCHDIR
 # define DO_AUTOCHDIR do { if (p_acd) do_autochdir(); } while (0)
diff --git a/src/os_amiga.c b/src/os_amiga.c
index bc4ecc9..d09974f 100644
--- a/src/os_amiga.c
+++ b/src/os_amiga.c
@@ -921,8 +921,8 @@
 	struct PathNode *head = DupCmdPathList(NULL);
 
 	// For each entry, recur to check for executable.
-	for(struct PathNode *tail = head; !exe && tail;
-		tail = (struct PathNode *) BADDR(tail->pn_Next))
+	for (struct PathNode *tail = head; !exe && tail;
+			       tail = (struct PathNode *) BADDR(tail->pn_Next))
 	{
 	    SetCurrentDir(tail->pn_Lock);
 	    exe = mch_can_exe(name, path, 0);
diff --git a/src/os_win32.c b/src/os_win32.c
index c43a31a..869f02f 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -6863,7 +6863,7 @@
 	    vim_free(unicodebuf);
 	    unicodebuf = length ? LALLOC_MULT(WCHAR, length) : NULL;
 	    unibuflen = unibuflen ? 0 : length;
-	} while(1);
+	} while (TRUE);
 	cells = mb_string2cells(pchBuf, cbToWrite);
     }
     else // cbToWrite == 1 && *pchBuf == ' ' && enc_utf8
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 406a0e4..b7bfc86 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -3822,7 +3822,7 @@
 
 	} // switch(*p)
 
-    } // for(p = postfix; *p; ++p)
+    } // for (p = postfix; *p; ++p)
 
     if (nfa_calc_size == TRUE)
     {
diff --git a/src/testdir/test_codestyle.vim b/src/testdir/test_codestyle.vim
index ec476c0..3553063 100644
--- a/src/testdir/test_codestyle.vim
+++ b/src/testdir/test_codestyle.vim
@@ -36,6 +36,10 @@
     cursor(1, 1)
     lnum = search('else\s*{', '', 0, 0, skip)
     assert_equal(0, lnum, fname .. ': curly after "else"')
+
+    cursor(1, 1)
+    lnum = search('\<\(if\|while\|for\)(', '', 0, 0, skip)
+    assert_equal(0, lnum, fname .. ': missing white space after "if"/"while"/"for"')
   endfor
 
   bwipe!
diff --git a/src/version.c b/src/version.c
index 5af78a5..1745dcd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1529,
+/**/
     1528,
 /**/
     1527,
