http://www.ietf.org/rfc/rfc3542.txt

http://bugs.gentoo.org/153252

--- a/src/mping.c
+++ b/src/mping.c
@@ -1688,6 +1688,20 @@
         }
 }
 
+/* RFC3542 changed some definitions from RFC2292 for no good reason, whee !
+ * the newer 3542 uses a MLD_ prefix where as 2292 uses ICMP6_ prefix */
+#ifndef MLD_LISTENER_QUERY
+# define MLD_LISTENER_QUERY ICMP6_MEMBERSHIP_QUERY
+#endif
+#ifndef MLD_LISTENER_REPORT
+# define MLD_LISTENER_REPORT ICMP6_MEMBERSHIP_REPORT
+#endif
+#ifndef MLD_LISTENER_REDUCTION
+# define MLD_LISTENER_REDUCTION ICMP6_MEMBERSHIP_REDUCTION
+#endif
+#ifndef ICMP6_DST_UNREACH_BEYONDSCOPE
+# define ICMP6_DST_UNREACH_BEYONDSCOPE ICMP6_DST_UNREACH_NOTNEIGHBOR
+#endif
 /*
  *  Print a descriptive string about an ICMP6 header.
  */
@@ -1704,8 +1718,8 @@
                 case ICMP6_DST_UNREACH_ADMIN:
                         printf("Administratively Prohibited\n");
                         break;
-                case ICMP6_DST_UNREACH_NOTNEIGHBOR:
-                        printf("Not a Neighbour\n");
+                case ICMP6_DST_UNREACH_BEYONDSCOPE:
+                        printf("Beyond scope\n");
                         break;
                 case ICMP6_DST_UNREACH_ADDR:
                         printf("Destination Host Unreachable\n");
@@ -1755,13 +1769,13 @@
         case ICMP6_ECHO_REPLY:
                 printf("Echo reply\n");
                 break;
-        case ICMP6_MEMBERSHIP_QUERY:
-                printf("Membership Query\n");
+        case MLD_LISTENER_QUERY:
+                printf("MLD Query\n");
                 break;
-        case ICMP6_MEMBERSHIP_REPORT:
+        case MLD_LISTENER_REPORT:
                 printf("MLD Report\n");
                 break;
-        case ICMP6_MEMBERSHIP_REDUCTION:
+        case MLD_LISTENER_REDUCTION:
                 printf("MLD Reduction\n");
                 break;
 	case ND_ROUTER_ADVERT: