diff --git a/src/class_singleWorker.py b/src/class_singleWorker.py
index 77583626..7077b697 100644
--- a/src/class_singleWorker.py
+++ b/src/class_singleWorker.py
@@ -201,10 +201,11 @@ class singleWorker(StoppableThread):
                 'Could not read or decode privkey for address %s', address)
             raise ValueError
 
-        privSigningKeyHex = hexlify(
-            highlevelcrypto.decodeWalletImportFormat(privSigningKeyBase58))
+        privSigningKeyHex = hexlify(highlevelcrypto.decodeWalletImportFormat(
+            privSigningKeyBase58.encode()))
         privEncryptionKeyHex = hexlify(
-            highlevelcrypto.decodeWalletImportFormat(privEncryptionKeyBase58))
+            highlevelcrypto.decodeWalletImportFormat(
+                privEncryptionKeyBase58.encode()))
 
         # The \x04 on the beginning of the public keys are not sent.
         # This way there is only one acceptable way to encode
@@ -1113,7 +1114,7 @@ class singleWorker(StoppableThread):
                     continue
                 privEncryptionKeyHex = hexlify(
                     highlevelcrypto.decodeWalletImportFormat(
-                        privEncryptionKeyBase58))
+                        privEncryptionKeyBase58.encode()))
                 pubEncryptionKeyBase256 = unhexlify(highlevelcrypto.privToPub(
                     privEncryptionKeyHex))[1:]
                 requiredAverageProofOfWorkNonceTrialsPerByte = \
diff --git a/src/shared.py b/src/shared.py
index 3570864a..b85ddb20 100644
--- a/src/shared.py
+++ b/src/shared.py
@@ -102,8 +102,8 @@ def reloadMyAddressHashes():
         # Returns a simple 32 bytes of information encoded in 64 Hex characters
         try:
             privEncryptionKey = hexlify(
-                highlevelcrypto.decodeWalletImportFormat(
-                    config.get(addressInKeysFile, 'privencryptionkey')
+                highlevelcrypto.decodeWalletImportFormat(config.get(
+                    addressInKeysFile, 'privencryptionkey').encode()
                 ))
         except ValueError:
             logger.error(
diff --git a/src/tests/test_addressgenerator.py b/src/tests/test_addressgenerator.py
index 236b4d8b..e48daef9 100644
--- a/src/tests/test_addressgenerator.py
+++ b/src/tests/test_addressgenerator.py
@@ -85,3 +85,17 @@ class TestAddressGenerator(TestPartialRun):
             self.config.getboolean(sample_deterministic_addr4, 'chan'))
         self.assertTrue(
             self.config.getboolean(sample_deterministic_addr4, 'enabled'))
+
+    def test_random(self):
+        """Test random address"""
+        self.command_queue.put((
+            'createRandomAddress', 4, 1, 'test_random', 1, '', False, 0, 0))
+        addr = self.return_queue.get()
+        self.assertRegexpMatches(addr, r'^BM-')
+        self.assertRegexpMatches(addr[3:], r'[a-zA-Z1-9]+$')
+        self.assertLessEqual(len(addr[3:]), 40)
+
+        self.assertEqual(
+            self.worker_queue.get(), ('sendOutOrStoreMyV4Pubkey', addr))
+        self.assertEqual(self.config.get(addr, 'label'), 'test_random')
+        self.assertTrue(self.config.getboolean(addr, 'enabled'))