diff --git a/src/class_singleWorker.py b/src/class_singleWorker.py
index ccefd149..83009c37 100644
--- a/src/class_singleWorker.py
+++ b/src/class_singleWorker.py
@@ -217,8 +217,9 @@ class singleWorker(StoppableThread):
         return privSigningKeyHex, privEncryptionKeyHex, \
             pubSigningKey, pubEncryptionKey
 
+    @classmethod
     def _doPOWDefaults(
-        self, payload, TTL,
+        cls, payload, TTL,
         nonceTrialsPerByte=None, payloadLengthExtraBytes=None,
         log_prefix='', log_time=False
     ):
@@ -228,19 +229,19 @@ class singleWorker(StoppableThread):
         if not payloadLengthExtraBytes:
             payloadLengthExtraBytes = \
                 defaults.networkDefaultPayloadLengthExtraBytes
-        self.logger.info(
+        cls.logger.info(
             '%s Doing proof of work... TTL set to %s', log_prefix, TTL)
         if log_time:
             start_time = time.time()
         trialValue, nonce = proofofwork.calculate(
             payload, TTL, nonceTrialsPerByte, payloadLengthExtraBytes)
-        self.logger.info(
+        cls.logger.info(
             '%s Found proof of work %s Nonce: %s',
             log_prefix, trialValue, nonce
         )
         try:
             delta = time.time() - start_time
-            self.logger.info(
+            cls.logger.info(
                 'PoW took %.1f seconds, speed %s.',
                 delta, sizeof_fmt(nonce / delta)
             )
diff --git a/src/tests/test_proofofwork.py b/src/tests/test_proofofwork.py
index 2bf4fa08..0d643652 100644
--- a/src/tests/test_proofofwork.py
+++ b/src/tests/test_proofofwork.py
@@ -42,6 +42,12 @@ class TestProofofworkBase(TestPartialRun):
         self.assertTrue(
             protocol.isProofOfWorkSufficient(pack('>Q', nonce) + payload))
 
+        # pylint: disable=import-outside-toplevel
+        from class_singleWorker import singleWorker
+
+        self.assertTrue(protocol.isProofOfWorkSufficient(
+            singleWorker._doPOWDefaults(payload, default_ttl)))
+
 
 @unittest.skipUnless(
     os.getenv('BITMESSAGE_TEST_POW'), "BITMESSAGE_TEST_POW is not set")
@@ -67,6 +73,23 @@ class TestProofofwork(TestProofofworkBase):
                 pack('>Q', nonce) + payload, 2000, 2000,
                 int(time.time()) + TTL - 3600))
 
+        # pylint: disable=import-outside-toplevel
+        from class_singleWorker import singleWorker
+
+        with self.assertLogs('default') as cm:
+            self.assertTrue(protocol.isProofOfWorkSufficient(
+                singleWorker._doPOWDefaults(payload, TTL, log_prefix='+')))
+        self.assertEqual(
+            cm.output[0],
+            'INFO:default:+ Doing proof of work... TTL set to %s' % TTL)
+        self.assertEqual(
+            cm.output[1][:34], 'INFO:default:+ Found proof of work')
+
+        with self.assertLogs('default') as cm:
+            self.assertTrue(protocol.isProofOfWorkSufficient(
+                singleWorker._doPOWDefaults(payload, TTL, log_time=True)))
+        self.assertEqual(cm.output[2][:22], 'INFO:default:PoW took ')
+
         with self.assertRaises(StopIteration):
             self.state.shutdown = 1
             proofofwork.calculate(payload, TTL)