diff -Nurd -X.diff_ignore freeciv/client/tilespec.c freeciv/client/tilespec.c
--- freeciv/client/tilespec.c	2012-11-22 03:11:30.818091433 +0200
+++ freeciv/client/tilespec.c	2013-01-17 16:44:06.151958662 +0200
@@ -5467,7 +5467,9 @@
       if (t->roadstyle == 0) {
         return t->sprites.road.dir[i];
       } else if (t->roadstyle == 1) {
-        return t->sprites.road.even[1 << i];
+        if ((i % 2) == 0) {
+          return t->sprites.road.even[1 << (i / 2)];
+        }
       } else if (t->roadstyle == 2) {
         return t->sprites.road.total[1 << i];
       }
@@ -5485,7 +5487,9 @@
       if (t->roadstyle == 0) {
         return t->sprites.rail.dir[i];
       } else if (t->roadstyle == 1) {
-        return t->sprites.rail.even[1 << i];
+        if ((i % 2) == 0) {
+          return t->sprites.rail.even[1 << (i / 2)];
+        }
       } else if (t->roadstyle == 2) {
         return t->sprites.rail.total[1 << i];
       }
