diff -urp iputils-s20071127/tracepath6.c iputils-new/tracepath6.c --- iputils-s20071127/tracepath6.c 2014-11-18 15:08:22.691677284 +0100 +++ iputils-new/tracepath6.c 2014-11-18 15:11:42.434034029 +0100 @@ -183,6 +183,13 @@ restart: printf("(This broken router returned corrupted payload) "); } + if (rethops<=64) + rethops = 65-rethops; + else if (rethops<=128) + rethops = 129-rethops; + else + rethops = 256-rethops; + switch (e->ee_errno) { case ETIMEDOUT: printf("\n"); @@ -208,12 +215,6 @@ restart: e->ee_type == 3 && e->ee_code == 0)) { if (rethops>=0) { - if (rethops<=64) - rethops = 65-rethops; - else if (rethops<=128) - rethops = 129-rethops; - else - rethops = 256-rethops; if (sndhops>=0 && rethops != sndhops) printf("asymm %2d ", rethops); else if (sndhops<0 && rethops != ttl) diff -urp iputils-s20071127/tracepath.c iputils-new/tracepath.c --- iputils-s20071127/tracepath.c 2014-11-18 15:08:22.685677303 +0100 +++ iputils-new/tracepath.c 2014-11-18 15:10:46.531214060 +0100 @@ -170,6 +170,13 @@ restart: printf("(This broken router returned corrupted payload) "); } + if (rethops<=64) + rethops = 65-rethops; + else if (rethops<=128) + rethops = 129-rethops; + else + rethops = 256-rethops; + switch (e->ee_errno) { case ETIMEDOUT: printf("\n"); @@ -192,12 +199,6 @@ restart: e->ee_type == 11 && e->ee_code == 0) { if (rethops>=0) { - if (rethops<=64) - rethops = 65-rethops; - else if (rethops<=128) - rethops = 129-rethops; - else - rethops = 256-rethops; if (sndhops>=0 && rethops != sndhops) printf("asymm %2d ", rethops); else if (sndhops<0 && rethops != ttl)