Index: trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(revision 3189)
+++ trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(revision 3190)
@@ -66,9 +66,10 @@
         new PrefixSuffixSwitcher("left", "right"),
         new PrefixSuffixSwitcher("forward", "backward"),
-        new PrefixSuffixSwitcher("forwards", "backwards")
+        new PrefixSuffixSwitcher("forwards", "backwards"),
+        new PrefixSuffixSwitcher("up", "down"),
     };
 
     private static ArrayList<String> reversibleTags = new ArrayList<String>(
-            Arrays.asList(new String[] {"oneway", "incline"}));
+            Arrays.asList(new String[] {"oneway", "incline", "direction"}));
 
     public static boolean isReversible(Way way) {
@@ -120,5 +121,5 @@
                     newValue = OsmUtils.reverseval;
                 }
-            } else if (key.equals("incline")) {
+            } else if (key.equals("incline") || key.equals("direction")) {
                 PrefixSuffixSwitcher switcher = new PrefixSuffixSwitcher("up", "down");
                 newValue = switcher.apply(value);
@@ -130,4 +131,8 @@
                     newKey = prefixSuffixSwitcher.apply(key);
                     if (!key.equals(newKey)) {
+                        break;
+                    }
+                    newValue = prefixSuffixSwitcher.apply(value);
+                    if (!value.equals(newValue)) {
                         break;
                     }
