Index: resources/data/defaultpresets.xml
===================================================================
--- resources/data/defaultpresets.xml	(revision 19227)
+++ resources/data/defaultpresets.xml	(working copy)
@@ -1323,8 +1323,11 @@
             <space />
             <optional text="Cycleway Lane Attributes">
                 <combo key="cycleway:both:lane" text="Lane type (both)" values_context="cycleway" values="advisory,exclusive"/>
+                <check key="cycleway:both:buffer" text="Has buffer between automobiles and cycleway (both)" />
                 <combo key="cycleway:left:lane" text="Lane type (left)" values_context="cycleway" values="advisory,exclusive"/>
+                <check key="cycleway:left:buffer" text="Has buffer between automobiles and cycleway (left)" />
                 <combo key="cycleway:right:lane" text="Lane type (right)" values_context="cycleway" values="advisory,exclusive"/>
+                <check key="cycleway:right:buffer" text="Has buffer between automobiles and cycleway (right)" />
             </optional>
             <optional text="Edit Highway Attributes:">
                 <combo key="highway" text="Highway" values="motorway,motorway_link,trunk,trunk_link,primary,primary_link,secondary,secondary_link,tertiary,tertiary_link,unclassified,residential,living_street,service,bus_guideway,construction" values_context="Highway" values_sort="false" />
Index: resources/data/validator/combinations.mapcss
===================================================================
--- resources/data/validator/combinations.mapcss	(revision 19227)
+++ resources/data/validator/combinations.mapcss	(working copy)
@@ -1065,3 +1065,23 @@
   throwWarning: tr("{0} is lower or equal to {1} on {2}", "{1.key}", "{2.key}", "{0.key}");
   group: tr("suspicious tag combination");
 }
+
+/* #23932 */
+way[cycleway:right=separate][cycleway:right:buffer],
+way[cycleway:left=separate][cycleway:left:buffer],
+way[cycleway:both=separate][cycleway:both:buffer],
+way[cycleway=separate][cycleway:buffer],
+way[highway=cycleway][cycleway:buffer] {
+  throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
+  group: tr("suspicious tag combination");
+  assertMatch: "way cycleway:right=separate cycleway:right:buffer=yes";
+  assertMatch: "way cycleway:left=separate cycleway:left:buffer=no";
+  assertMatch: "way cycleway:both=separate cycleway:both:buffer=yes";
+  assertMatch: "way cycleway=separate cycleway:buffer=no";
+  assertMatch: "way highway=cycleway cycleway:buffer=yes";
+  assertNoMatch: "way cycleway:right=lane cycleway:right:buffer=no";
+  assertNoMatch: "way cycleway:left=lane cycleway:left:buffer=yes";
+  assertNoMatch: "way cycleway:both=lane cycleway:both:buffer=no";
+  assertNoMatch: "way cycleway=lane cycleway:buffer=yes";
+  assertNoMatch: "way highway=cycleway";
+}
