diff --git a/neo/admin/app.py b/neo/admin/app.py
index ff25fa93c2bb28347c0a905fcc5d3630ca55ef1b..35709998ed3c6e9c34ca5cd44bc2b6c83d7f812a 100644
--- a/neo/admin/app.py
+++ b/neo/admin/app.py
@@ -57,7 +57,7 @@ class Application(object):
 
         # Internal attributes.
         self.em = EventManager()
-        self.nm = NodeManager()
+        self.nm = NodeManager
 
         self.name = config.getCluster()
         self.server = config.getBind()
diff --git a/neo/client/app.py b/neo/client/app.py
index 00b397a33c1b37485d6fb64a5be898d939d60232..dd66429798b45684d242dc61c293cc86a67778ff 100644
--- a/neo/client/app.py
+++ b/neo/client/app.py
@@ -108,7 +108,7 @@ class Application(object):
         self.name = name
         self.connector_handler = getConnectorHandler(connector)
         self.dispatcher = Dispatcher()
-        self.nm = NodeManager()
+        self.nm = NodeManager
         self.cp = ConnectionPool(self)
         self.pt = None
         self.master_conn = None
diff --git a/neo/master/app.py b/neo/master/app.py
index d0ba482ee4ccf48f472db2fa59a4722681ae89c2..c816b0fe61b22d7e99065565b95ab2e0e013e7b8 100644
--- a/neo/master/app.py
+++ b/neo/master/app.py
@@ -47,7 +47,7 @@ class Application(object):
 
         # Internal attributes.
         self.em = EventManager()
-        self.nm = NodeManager()
+        self.nm = NodeManager
         self.tm = TransactionManager()
 
         self.name = config.getCluster()
diff --git a/neo/node.py b/neo/node.py
index e7c5e5c01bd437fe6888b23ec18ca912d923019a..7cefd6e6c101397b246ad2607c729018db20c53f 100644
--- a/neo/node.py
+++ b/neo/node.py
@@ -377,3 +377,5 @@ class NodeManager(object):
             logging.debug(' * %32s | %8s | %22s | %s' % (
                 uuid, node.getType(), address, node.getState()))
 
+# pseudo singleton
+NodeManager = NodeManager()
diff --git a/neo/storage/app.py b/neo/storage/app.py
index d39d6cb58955748ebe723c0b04e8b6891d749584..645ef9cc1673ac6a0afc1600e83c6111a84e0feb 100644
--- a/neo/storage/app.py
+++ b/neo/storage/app.py
@@ -46,7 +46,7 @@ class Application(object):
 
         # Internal attributes.
         self.em = EventManager()
-        self.nm = NodeManager()
+        self.nm = NodeManager
         self.tm = TransactionManager(self)
         self.dm = buildDatabaseManager(config.getAdapter(), config.getDatabase())
 
diff --git a/neo/tests/testNodes.py b/neo/tests/testNodes.py
index 6e81404efb2ed3e4d968a72cb09b3b2495900783..98917537aee9239a18055b7c6575363a70ae7f36 100644
--- a/neo/tests/testNodes.py
+++ b/neo/tests/testNodes.py
@@ -125,7 +125,7 @@ class NodesTests(NeoTestBase):
 class NodeManagerTests(NeoTestBase):
 
     def setUp(self):
-        self.manager = nm = NodeManager()
+        self.manager = nm = NodeManager.__class__()
         self.storage = StorageNode(nm, ('127.0.0.1', 1000), self.getNewUUID())
         self.master = MasterNode(nm, ('127.0.0.1', 2000), self.getNewUUID())
         self.client = ClientNode(nm, None, self.getNewUUID())