Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/OnLineStrategy.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/OnLineStrategy.java	(revision 12505)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/OnLineStrategy.java	(revision 12506)
@@ -46,5 +46,9 @@
         return findOptimalWayPosition(nb, path).map(best -> {
             MapViewPoint center = best.start.interpolate(best.end, .5);
-            return new MapViewPositionAndRotation(center, upsideTheta(best));
+            double theta = upsideTheta(best);
+            MapViewPoint moved = center.getMapViewState().getForView(
+                    center.getInViewX() - Math.sin(theta) * yOffset,
+                    center.getInViewY() + Math.cos(theta) * yOffset);
+            return new MapViewPositionAndRotation(moved, theta);
         }).orElse(null);
     }
