Index: /trunk/umit/gui/radialnet/GraphBuilder.py
===================================================================
--- /trunk/umit/gui/radialnet/GraphBuilder.py (revision 4508)
+++ /trunk/umit/gui/radialnet/GraphBuilder.py (revision 5096)
@@ -286,5 +286,5 @@
     
         # getting traceroute information
-        trace = host.trace
+        trace = host.trace.copy()
         if trace and trace['hop']:
     
@@ -293,8 +293,8 @@
     
             for host_hop in host_hops:
-                hop = host_hop
+                hop = host_hop.copy()
                 hostname = host_hop.get('host', None)
                 hop['ttl'] = int(hop['ttl'])
-                hop['hostname'] = (hostname, '')[hostname is None]
+                hop['host'] = (hostname, '')[hostname is None]
                 if 'host' in hop:
                     hop.pop('host')
@@ -326,5 +326,5 @@
         # for each host in hosts just mount the graph
         for host in hosts:
-            trace = host.trace
+            trace = host.trace.copy()
             # if host has traceroute information mount graph
             if trace and trace['hop']:
@@ -338,10 +338,9 @@
                 for ttl in range(1, max(ttls) + 1):
                     if ttl in ttls:
-    
-                        hop = host.get_hop_by_ttl(ttl)
-                        # FIXME: Protect if hop is None
+                        _hop = host.get_hop_by_ttl(ttl)
+                        if _hop == None:
+                            continue
+                        hop = _hop.copy()
                         for node in nodes:
-                            if hop.has_key('ipaddr'):
-                                hop['ip'] = hop['ipaddr']
                             if hop['ipaddr'] == node.get_info('ip'):
                                 break
@@ -359,5 +358,5 @@
                             if hop.has_key('host') and hop['host'] is not None:
                                 node.set_info(\
-                                    {'hostname':hop['host']})
+                                    {'host':hop['host']})
     
                         rtt = hop['rtt']
@@ -376,5 +375,5 @@
     
                         node.set_draw_info({'valid':False})
-                        node.set_info({'ip':None, 'hostname':None})
+                        node.set_info({'ip':None, 'host':None})
                         node.set_draw_info({'color':(1,1,1), \
                                             'radius':NONE_RADIUS})
Index: /trunk/umit/gui/radialnet/NodeNotebook.py
===================================================================
--- /trunk/umit/gui/radialnet/NodeNotebook.py (revision 4938)
+++ /trunk/umit/gui/radialnet/NodeNotebook.py (revision 5096)
@@ -699,7 +699,7 @@
 
                     self.__trace_store.append([hop['ttl'],
-                                               hop['rtt'],
-                                               hop['ip'],
-                                               hop['hostname'],
+                                               hop.get('rtt',''),
+                                               hop.get('ipaddr',''),
+                                               hop.get('host',''),
                                                HOP_COLOR['known'],
                                                True])
Index: /trunk/umit/core/NmapParser.py
===================================================================
--- /trunk/umit/core/NmapParser.py (revision 4240)
+++ /trunk/umit/core/NmapParser.py (revision 5096)
@@ -823,9 +823,8 @@
                 if not isinstance(hname, dict):
                     continue
-
                 self.write_parser.startElement('hostname',
                         AttributesImpl({
-                            'name': hname.get('hostname', ''),
-                            'type': hname.get('hostname_type', '')})
+                            'name': hname.get('name', ''),
+                            'type': hname.get('type', '')})
                         )
                 self.write_parser.endElement('hostname')
@@ -989,4 +988,22 @@
             # End of sequences elements
             ###########################
+            
+            # Trace elements
+            
+            if isinstance(host.trace, dict):
+                self.write_parser.startElement('trace',
+                        AttributesImpl({
+                            'port': host.trace.get('port', ''),
+                            'proto': host.trace.get('proto', '')})
+                        )
+                
+                # Write hops:
+                for hop in host.trace['hop']:
+                    self.write_parser.startElement('hop',
+                        AttributesImpl(hop))
+                    self.write_parser.endElement('hop')
+                
+                self.write_parser.endElement('trace')
+            # End trace elements
 
             # End host element
