diff --git a/src/misc1.c b/src/misc1.c
index d8e7e1a..f1f0074 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -1993,7 +1993,6 @@
 	for (list = curbuf->b_p_com; *list; )
 	{
 	    char_u *flags_save = list;
-	    int	    is_only_whitespace = FALSE;
 
 	    /*
 	     * Get one option part into part_buf[].  Advance list to next one.
@@ -2021,8 +2020,6 @@
 		    continue;
 		while (VIM_ISWHITE(*string))
 		    ++string;
-		if (*string == NUL)
-		    is_only_whitespace = TRUE;
 	    }
 	    for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
 		/* do nothing */;
@@ -2037,11 +2034,13 @@
 		    && !VIM_ISWHITE(line[i + j]) && line[i + j] != NUL)
 		continue;
 
-	    // For a middlepart comment that is only white space, only consider
-	    // it to match if everything before the current position in the
-	    // line is also whitespace.
-	    if (is_only_whitespace && vim_strchr(part_buf, COM_MIDDLE) != NULL)
+	    if (vim_strchr(part_buf, COM_MIDDLE) != NULL)
 	    {
+		// For a middlepart comment, only consider it to match if
+		// everything before the current position in the line is
+		// whitespace.  Otherwise we would think we are inside a
+		// comment if the middle part appears somewhere in the middle
+		// of the line.  E.g. for C the "*" appears often.
 		for (j = 0; VIM_ISWHITE(line[j]) && j <= i; j++)
 		    ;
 		if (j < i)
diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim
index f8664d4..67e5a48 100644
--- a/src/testdir/test_fold.vim
+++ b/src/testdir/test_fold.vim
@@ -507,6 +507,35 @@
   enew!
 endfunc
 
+" test create fold markers with C filetype
+func Test_fold_create_marker_in_C()
+  enew!
+  set fdm=marker fdl=9
+  set filetype=c
+
+  let content = [
+	\ '/*',
+	\ ' * comment',
+	\ ' * ',
+	\ ' *',
+	\ ' */',
+	\ 'int f(int* p) {',
+	\ '    *p = 3;',
+	\ '    return 0;',
+	\ '}'
+	\]
+  for c in range(len(content) - 1)
+    bw!
+    call append(0, content)
+    call cursor(c + 1, 1)
+    norm! zfG
+    call assert_equal(content[c] . (c < 4 ? '{{{' : '/*{{{*/'), getline(c + 1))
+  endfor
+
+  set fdm& fdl&
+  enew!
+endfunc
+
 " test folding with indent
 func Test_fold_indent()
   enew!
diff --git a/src/version.c b/src/version.c
index 880a510..45d1858 100644
--- a/src/version.c
+++ b/src/version.c
@@ -793,6 +793,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    574,
+/**/
     573,
 /**/
     572,
