diff --git a/scapy/layers/dns.py b/scapy/layers/dns.py
index 5b2417e3219d7c714e13e593c167c84c71f4b8d3..bafa5a62d2509ab32ce3106246b7f98465e0ebbc 100644
--- a/scapy/layers/dns.py
+++ b/scapy/layers/dns.py
@@ -12,7 +12,7 @@ import socket,struct
 from scapy.packet import *
 from scapy.fields import *
 from scapy.ansmachine import *
-from scapy.layers.inet import UDP
+from scapy.layers.inet import IP, UDP
 
 class DNSStrField(StrField):
 
diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py
index c4edc007eba7c8d8300adde9eeda6a4c19e7a171..7f4093ea3d9a1417e66f7c4ce077fff4824894b2 100644
--- a/scapy/layers/inet.py
+++ b/scapy/layers/inet.py
@@ -987,7 +987,7 @@ class TracerouteResult(SndRcvList):
                 self.label.visible ^= 1
 
         visual.scene = visual.display()
-        visual.scene.exit_on_close(0)
+        visual.scene.exit = True
         start = visual.box()
         rings={}
         tr3d = {}
@@ -1033,6 +1033,7 @@ class TracerouteResult(SndRcvList):
         
         movcenter=None
         while 1:
+            visual.rate(50)
             if visual.scene.kb.keys:
                 k = visual.scene.kb.getkey()
                 if k == "esc" or k == "q":
@@ -1134,7 +1135,7 @@ class TracerouteResult(SndRcvList):
                 trace_id = (s.src,s.dst,s.proto,0)
             trace = rt.get(trace_id,{})
             ttl = conf.ipv6_enabled and scapy.layers.inet6.IPv6 in s and s.hlim or s.ttl
-            if not (ICMP in r and r[ICMP].type == 11) and not (conf.ipv6_enabled and scapy.layers.inet6.IPv6 in r and ICMPv6TimeExceeded in r):
+            if not (ICMP in r and r[ICMP].type == 11) and not (conf.ipv6_enabled and scapy.layers.inet6.IPv6 in r and scapy.layers.inet6.ICMPv6TimeExceeded in r):
                 if trace_id in ports_done:
                     continue
                 ports_done[trace_id] = None
diff --git a/scapy/packet.py b/scapy/packet.py
index 55710abb1b6cf49abe49ba72cea43572d213084f..d6b002385986438e12817a5fcdced14445dc228a 100644
--- a/scapy/packet.py
+++ b/scapy/packet.py
@@ -15,6 +15,7 @@ from base_classes import BasePacket,Gen,SetGen,Packet_metaclass,NewDefaultValues
 from volatile import VolatileValue
 from utils import import_hexcap,tex_escape,colgen,get_temp_file
 from error import Scapy_Exception,log_runtime
+import subprocess
 
 try:
     import pyx