diff --git a/tools/dev/mininet/examples/ha.py b/tools/dev/mininet/examples/ha.py
index 18f1222..1ec6932 100755
--- a/tools/dev/mininet/examples/ha.py
+++ b/tools/dev/mininet/examples/ha.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """
 NOTES
@@ -196,13 +196,13 @@
     def start( self ):
         output( "(starting HTTP Server)" )
         # start python web server as a bg process
-        self.cmd( 'python -m SimpleHTTPServer &> web.log &' )
+        self.cmd( 'python3 -m SimpleHTTPServer &> web.log &' )
 
     def stop( self ):
         # XXX is this ever called?
-        print "Stopping HTTP Server..."
-        print self.cmd( 'fg' )
-        print self.cmd( '\x03' )  # ctrl-c
+        print("Stopping HTTP Server...")
+        print(self.cmd( 'fg' ))
+        print(self.cmd( '\x03' ))  # ctrl-c
 
 
 class DynamicONOSNode( onos.ONOSNode ):
@@ -278,7 +278,7 @@
                 l.rotate( -1 )
             return perms
 
-        print "Generating %s with %s" % ( location, str(nodes) )
+        print("Generating %s with %s" % ( location, str(nodes) ))
         port = 9876
         ips = [ node.IP() for node in nodes ]
         node = lambda k: { 'id': k, 'ip': k, 'port': port }
@@ -411,7 +411,7 @@
         for node in cluster.activeNodes:
             node.shouldStart = True
     else:
-        print "Incorrect test"
+        print("Incorrect test")
         return
     net.start()
     if args.interactive:
