diff --git a/mininet/net.py b/mininet/net.py
index b7b89f7e0e977ea1b4e9cb34c30e8ae00ca9deac..e4228b914018d5069958eb068f24fde6256fac49 100755
--- a/mininet/net.py
+++ b/mininet/net.py
@@ -246,7 +246,7 @@ def addController( self, name='c0', controller=None, **params ):
         if not controller:
             controller = self.controller
         # Construct new controller if one is not given
-        if issubclass( name.__class__, Controller ):
+        if isinstance( name, Controller ):
             controller_new = name
             # Pylint thinks controller is a str()
             # pylint: disable=E1103
@@ -358,7 +358,7 @@ def buildFromTopo( self, topo=None ):
                 classes = [ classes ]
             for i, cls in enumerate( classes ):
                 # Allow Controller objects because nobody understands currying
-                if issubclass( cls.__class__, Controller ):
+                if isinstance( cls, Controller ):
                     self.addController( cls )
                 else:
                     self.addController( 'c%d' % i, cls )