diff --git a/mininet/topo.py b/mininet/topo.py
index 65d445e470bcc1118355586e19b57b65b555d3ee..b6f1fa33c78b0991c3ebc38fe42dc1367fe12c78 100644
--- a/mininet/topo.py
+++ b/mininet/topo.py
@@ -73,7 +73,7 @@ def edges_iter( self, data=False, keys=False ):
 
     def edges( self, data=False, keys=False ):
         "Return list of graph edges"
-        return list( self.edges_iter( data=data, keys=key ) )
+        return list( self.edges_iter( data=data, keys=keys ) )
 
 
     def __getitem__( self, node ):
@@ -84,12 +84,13 @@ def __len__( self ):
         "Return the number of nodes"
         return len( self.node )
 
-    def convertTo( self, cls, data=False ):
+    def convertTo( self, cls, data=False, keys=False ):
         """Convert to a new object of networkx.MultiGraph-like class cls
-           data: include node and edge data"""
+           data: include node and edge data
+           keys: include edge keys as well as edge data"""
         g = cls()
         g.add_nodes_from( self.nodes( data=data ) )
-        g.add_edges_from( self.edges( data=data ) )
+        g.add_edges_from( self.edges( data=( data or keys ), keys=keys ) )
         return g
 
 
@@ -266,6 +267,12 @@ def setNodeInfo( self, name, info ):
         "Set metadata (dict) for node"
         self.g.node[ name ] = info
 
+    def convertTo( self, cls, data=True, keys=True ):
+        """Convert to a new object of networkx.MultiGraph-like class cls
+           data: include node and edge data (default True)
+           keys: include edge keys as well as edge data (default True)"""
+        return self.g.convertTo( cls, data=data, keys=keys )
+
     @staticmethod
     def sorted( items ):
         "Items sorted in natural (i.e. alphabetical) order"