Index: /trunk/src/org/openstreetmap/josm/actions/corrector/ReverseWayNoTagCorrector.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/corrector/ReverseWayNoTagCorrector.java	(revision 17022)
+++ /trunk/src/org/openstreetmap/josm/actions/corrector/ReverseWayNoTagCorrector.java	(revision 17023)
@@ -58,5 +58,7 @@
             if (isDirectional) {
                 final boolean cannotBeCorrected = ReverseWayTagCorrector.getTagCorrections(tag).isEmpty();
-                if (cannotBeCorrected) {
+
+                if (cannotBeCorrected && !way.isKeyTrue("two_sided")) {
+                    // two_sided=yes is a special (documented) barrier=city_wall attribute, see #197140
                     collection.add(tag);
                 }
Index: /trunk/test/unit/org/openstreetmap/josm/actions/corrector/ReverseWayNoTagCorrectorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/actions/corrector/ReverseWayNoTagCorrectorTest.java	(revision 17022)
+++ /trunk/test/unit/org/openstreetmap/josm/actions/corrector/ReverseWayNoTagCorrectorTest.java	(revision 17023)
@@ -7,4 +7,6 @@
 import org.junit.Test;
 import org.openstreetmap.josm.data.osm.Tag;
+import org.openstreetmap.josm.data.osm.Tagged;
+import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -34,4 +36,11 @@
         assertEquals(0, ReverseWayNoTagCorrector.getDirectionalTags(new Tag("incline", "up")).size());
         assertEquals(0, ReverseWayNoTagCorrector.getDirectionalTags(new Tag("oneway", "yes")).size());
+        assertEquals(1, ReverseWayNoTagCorrector.getDirectionalTags(new Tag("barrier", "kerb")).size());
+        assertEquals(1, ReverseWayNoTagCorrector.getDirectionalTags(new Tag("barrier", "city_wall")).size());
+
+        final Tagged twoSidedCityWall = new Way();
+        twoSidedCityWall.put("barrier", "city_wall");
+        twoSidedCityWall.put("two_sided", "yes");
+        assertEquals(0, ReverseWayNoTagCorrector.getDirectionalTags(twoSidedCityWall).size());
     }
 }
