diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py
index 2ff5478e9cb78db2ba37cc6f2a640a6311234414..db36d0b8370e27e3076da7f16ad2651975817dcd 100644
--- a/scapy/layers/inet.py
+++ b/scapy/layers/inet.py
@@ -598,7 +598,9 @@ class ICMP(Packet):
         return p
     
     def hashret(self):
-        return struct.pack("HH",self.id,self.seq)+self.payload.hashret()
+        if self.type in [0,8,13,14,15,16,17,18]:
+            return struct.pack("HH",self.id,self.seq)+self.payload.hashret()
+        return self.payload.hashret()
     def answers(self, other):
         if not isinstance(other,ICMP):
             return 0