diff --git a/tools/tutorials/artemis/artemis-topo.py b/tools/tutorials/artemis/artemis-topo.py
index a612611..155108d6 100755
--- a/tools/tutorials/artemis/artemis-topo.py
+++ b/tools/tutorials/artemis/artemis-topo.py
@@ -1,5 +1,4 @@
-#!/usr/bin/python
-
+#!/usr/bin/python3
 from mininet.topo import Topo
 from mininet.net import Mininet
 from mininet.cli import CLI
@@ -26,7 +25,7 @@
     def config(self, **kwargs):
         Host.config(self, **kwargs)
 
-        for intf, attrs in self.intfDict.items():
+        for intf, attrs in list(self.intfDict.items()):
             self.cmd('ip addr flush dev %s' % intf)
             if 'mac' in attrs:
                 self.cmd('ip link set %s down' % intf)
@@ -49,7 +48,7 @@
         Host.config(self, **kwargs)
         self.cmd('sysctl net.ipv4.ip_forward=1')
 
-        for intf, attrs in self.intfDict.items():
+        for intf, attrs in list(self.intfDict.items()):
             self.cmd('ip addr flush dev %s' % intf)
             if 'mac' in attrs:
                 self.cmd('ip link set %s down' % intf)
@@ -82,7 +81,7 @@
         Host.config(self, **kwargs)
         self.cmd('sysctl net.ipv4.ip_forward=1')
 
-        for intf, attrs in self.intfDict.items():
+        for intf, attrs in list(self.intfDict.items()):
             self.cmd('ip addr flush dev %s' % intf)
             if 'mac' in attrs:
                 self.cmd('ip link set %s down' % intf)
