patch 7.4.915
Problem:    When removing from 'path' and then adding, a comma may go missing.
            (Malcolm Rowe)
Solution:   Fix the check for P_ONECOMMA. (closes #471)
diff --git a/src/option.c b/src/option.c
index db3a197..bc44cb2 100644
--- a/src/option.c
+++ b/src/option.c
@@ -4883,9 +4883,10 @@
 				{
 				    i = (int)STRLEN(origval);
 				    /* strip a trailing comma, would get 2 */
-				    if (comma && (flags & P_ONECOMMA) && i > 1
-					            && origval[i - 1] == ','
-						    && origval[i - 2] != '\\')
+				    if (comma && i > 1
+					  && (flags & P_ONECOMMA) == P_ONECOMMA
+					  && origval[i - 1] == ','
+					  && origval[i - 2] != '\\')
 					i--;
 				    mch_memmove(newval + i + comma, newval,
 							  STRLEN(newval) + 1);
diff --git a/src/testdir/test_options.in b/src/testdir/test_options.in
index bf1232a..6e56fa2 100644
--- a/src/testdir/test_options.in
+++ b/src/testdir/test_options.in
@@ -10,6 +10,12 @@
 :endtry
 :buf 1
 :$put =caught
+:"
+:" Test that changing 'path' keeps two commas.
+:set path=foo,,bar
+:set path-=bar
+:set path+=bar
+:$put =&path
 :/^result/,$w! test.out
 :qa!
 ENDTEST
diff --git a/src/testdir/test_options.ok b/src/testdir/test_options.ok
index a2e1494..0773152 100644
--- a/src/testdir/test_options.ok
+++ b/src/testdir/test_options.ok
@@ -1,2 +1,3 @@
 result
 ok
+foo,,bar
diff --git a/src/version.c b/src/version.c
index 450892a..4fb004d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    915,
+/**/
     914,
 /**/
     913,