Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java	(revision 15072)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java	(revision 15076)
@@ -67,5 +67,9 @@
 
         if (value.linkPrev) {
-            g.setColor(Color.black);
+            if (value.onewayFollowsPrevious) {
+                g.setColor(Color.black);
+            } else {
+                g.setColor(Color.lightGray);
+            }
             if (value.isOnewayHead) {
                 g.fillRect(xoff - 1, 0, 3, 1);
@@ -93,5 +97,9 @@
 
         if (value.linkNext) {
-            g.setColor(Color.black);
+            if (value.onewayFollowsNext) {
+                g.setColor(Color.black);
+            } else {
+                g.setColor(Color.lightGray);
+            }
             if (value.isOnewayTail) {
                 g.fillRect(xoff - 1, ymax, 3, 1);
@@ -120,5 +128,9 @@
 
         /* vertical lines */
-        g.setColor(Color.black);
+        if (value.onewayFollowsNext && value.onewayFollowsPrevious) {
+            g.setColor(Color.black);
+        } else {
+            g.setColor(Color.lightGray);
+        }
         if (value.isLoop) {
             g.drawLine(xoff+xloop, y1, xoff+xloop, y2);
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionType.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionType.java	(revision 15072)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionType.java	(revision 15076)
@@ -22,4 +22,8 @@
      * and / or the last node of this way is connected to the next way.
      * direction is BACKWARD if it is the other way around.
+     * direction has a ONEWAY value, if it is tagged as such and it is connected
+     * to the previous / next member.
+     * ONEWAY_FORWARD == the first node of the oneway is the last node of the previous way
+     * ONEWAY_BACKWARD == the last node of the oneway is the last node of the previous way
      * direction has a ROUNDABOUT value, if it is tagged as such and it is somehow
      * connected to the previous / next member.
@@ -44,4 +48,9 @@
     public boolean isOnewayHead;
     public boolean isOnewayTail;
+
+    /** False, if the way is oneway and it doesn't follow the flow of the previous member */
+    public boolean onewayFollowsPrevious = true;
+    /** True, if the way is oneway and it doesn't follow the flow of the next member */
+    public boolean onewayFollowsNext = true;
 
     public WayConnectionType(boolean linkPrev, boolean linkNext, Direction direction) {
@@ -83,12 +92,19 @@
      */
     public String getTooltip() {
+        boolean onewayGood = onewayFollowsPrevious && onewayFollowsNext;
         if (!isValid())
             return "";
-        else if (linkPrev && linkNext)
+        else if (linkPrev && linkNext && onewayGood)
             return tr("way is connected");
-        else if (linkPrev)
+        else if (linkPrev && linkNext && !onewayGood)
+            return tr("way is connected but has a wrong oneway direction");
+        else if (linkPrev && onewayGood)
             return tr("way is connected to previous relation member");
-        else if (linkNext)
+        else if (linkPrev && !onewayGood)
+            return tr("way is connected to previous relation member but has a wrong oneway direction");
+        else if (linkNext && onewayGood)
             return tr("way is connected to next relation member");
+        else if (linkNext && !onewayGood)
+            return tr("way is connected to next relation member but has a wrong oneway direction");
         else
             return tr("way is not connected to previous or next relation member");
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java	(revision 15072)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java	(revision 15076)
@@ -119,4 +119,19 @@
         if (lastWct != null) {
             lastWct.linkNext = wct.linkPrev;
+        }
+
+        if (lastWct != null && i > 0 && m.getMember() instanceof Way && members.get(i - 1).getMember() instanceof Way
+                && (m.getWay().isOneway() != 0 || members.get(i - 1).getWay().isOneway() != 0)) {
+            Way way = m.getWay();
+            Way previousWay = members.get(i - 1).getWay();
+            if (way.isOneway() != 0 && previousWay.isOneway() != 0 &&
+                    (way.firstNode(true) != previousWay.lastNode(true) &&
+                        way.lastNode(true) != previousWay.firstNode(true))) {
+                wct.onewayFollowsPrevious = false;
+                lastWct.onewayFollowsNext = false;
+            } else if (way.isOneway() != 0 && previousWay.isOneway() == 0 &&
+                    previousWay.isFirstLastNode(way.lastNode(true))) {
+                wct.onewayFollowsPrevious = false;
+            }
         }
         con.set(i, wct);
