diff --git a/beem/steemconnect.py b/beem/steemconnect.py
index 57f5a7f77177ad8245b7d05d2369f0df514b5cc7..a83d9af7eaa9901c14bdc3872fd7bab504b6e8bf 100644
--- a/beem/steemconnect.py
+++ b/beem/steemconnect.py
@@ -289,7 +289,10 @@ class SteemConnect(object):
         if redirect_uri is not None:
             params.update({"redirect_uri": redirect_uri})
 
-        params = urlencode(params).replace("%27", "%22")
+        for key in params:
+            if isinstance(params[key], list):
+                params[key] = json.dumps(params[key])
+        params = urlencode(params)
         url = urljoin(base_url, "sign/%s" % operation)
         url += "?" + params
 
diff --git a/tests/beem/test_account.py b/tests/beem/test_account.py
index 6418683e1e887d004ae1b51728c0ac82c9e2a78a..b2d2d2a9f2dc79b812f838884dd0d3c7fd9ebf37 100644
--- a/tests/beem/test_account.py
+++ b/tests/beem/test_account.py
@@ -474,7 +474,7 @@ class Testcases(unittest.TestCase):
             content = self.bts.rpc.get_accounts([account["name"]])[0]
         keys = list(content.keys())
         json_content = account.json()
-        exclude_list = [] # ['json_metadata', 'reputation', 'active_votes', 'savings_sbd_seconds']
+        exclude_list = []  # ['json_metadata', 'reputation', 'active_votes', 'savings_sbd_seconds']
         for k in keys:
             if k not in exclude_list:
                 if isinstance(content[k], dict) and isinstance(json_content[k], list):