Ah, OK, now I see what's going on, it's about prepend vs overwrite... But the logic is reversed.

What we want is:
 * starts with `,` => append to list
 * ends with `,` => prepend to list
 * else: overwrite

This breaks backward compatibility, but that's OK imho, since this is a rarely-depended on feature afaik.