diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 45df9b1da3ddcea8565450fe59e8b032d5c44ebd..aafcb2e0c1231d44e5b7535b334b160c2a099142 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,5 +1,18 @@
 Changelog
 =========
+0.20.16
+-------
+* Fix beempy walletinfo and sign
+
+0.20.15
+-------
+* Improve file reading for beempy sign and broadcast
+* add option to write file for beempy sign
+* Disable not working nodes
+* add missing prefix to comment_options op (by crokkon)
+* fix beempy verify --use-api (by crokkon)
+* Update installation.rst (by Nick Foster)
+
 0.20.14
 -------
 * unit tests fixed
diff --git a/beem/cli.py b/beem/cli.py
index 8b22d473a43a1d3e6f1109e38ae8b24a9401119d..53072a8ac3c99fa6b85c4cb1dcaa6da80fb01962 100644
--- a/beem/cli.py
+++ b/beem/cli.py
@@ -493,6 +493,8 @@ def walletinfo(test_unlock):
     """ Show info about wallet
     """
     stm = shared_steem_instance()
+    if stm.rpc is not None:
+        stm.rpc.rpcconnect()    
     t = PrettyTable(["Key", "Value"])
     t.align = "l"
     t.add_row(["created", stm.wallet.created()])
@@ -1690,7 +1692,7 @@ def sign(file, outfile):
     else:
         tx = click.get_text_stream('stdin')
     tx = ast.literal_eval(tx)
-    tx = stm.sign(tx)
+    tx = stm.sign(tx, reconstruct_tx=False)
     tx = json.dumps(tx, indent=4)
     if outfile and outfile != "-":
         with open(outfile, 'w') as fp:
diff --git a/beem/steem.py b/beem/steem.py
index 0e6dfaa1f4bf22991cad4ba1d4dea9c14745dbbb..741e438bb70cf407f95bb215ed5cb171271b64ef 100644
--- a/beem/steem.py
+++ b/beem/steem.py
@@ -950,7 +950,7 @@ class Steem(object):
             self.txbuffer.sign()
             return self.txbuffer.broadcast()
 
-    def sign(self, tx=None, wifs=[]):
+    def sign(self, tx=None, wifs=[], reconstruct_tx=True):
         """ Sign a provided transaction with the provided key(s)
 
             :param dict tx: The transaction to be signed and returned
@@ -958,6 +958,10 @@ class Steem(object):
                 a transaction. If not present, the keys will be loaded
                 from the wallet as defined in "missing_signatures" key
                 of the transactions.
+            :param bool reconstruct_tx: when set to False and tx
+                is already contructed, it will not reconstructed
+                and already added signatures remain
+
         """
         if tx:
             txbuffer = TransactionBuilder(tx, steem_instance=self)
@@ -965,7 +969,7 @@ class Steem(object):
             txbuffer = self.txbuffer
         txbuffer.appendWif(wifs)
         txbuffer.appendMissingSignatures()
-        txbuffer.sign()
+        txbuffer.sign(reconstruct_tx=reconstruct_tx)
         return txbuffer.json()
 
     def broadcast(self, tx=None):
diff --git a/beem/version.py b/beem/version.py
index 6bb54fce5a072e79ad8da532c408fee39f68964d..5fd7b31cfb08778e9f7d3b15f3e0868d3410a9ab 100644
--- a/beem/version.py
+++ b/beem/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.20.15'
+version = '0.20.16'
diff --git a/beemapi/version.py b/beemapi/version.py
index 6bb54fce5a072e79ad8da532c408fee39f68964d..5fd7b31cfb08778e9f7d3b15f3e0868d3410a9ab 100644
--- a/beemapi/version.py
+++ b/beemapi/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.20.15'
+version = '0.20.16'
diff --git a/beembase/version.py b/beembase/version.py
index 6bb54fce5a072e79ad8da532c408fee39f68964d..5fd7b31cfb08778e9f7d3b15f3e0868d3410a9ab 100644
--- a/beembase/version.py
+++ b/beembase/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.20.15'
+version = '0.20.16'
diff --git a/beemgraphenebase/version.py b/beemgraphenebase/version.py
index 6bb54fce5a072e79ad8da532c408fee39f68964d..5fd7b31cfb08778e9f7d3b15f3e0868d3410a9ab 100644
--- a/beemgraphenebase/version.py
+++ b/beemgraphenebase/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.20.15'
+version = '0.20.16'
diff --git a/setup.py b/setup.py
index 5283ab2ab6f9066ec7333305bc85d4deec855d91..63d9cd5c1624247dec63f6b21981ba519fcb8dfa 100755
--- a/setup.py
+++ b/setup.py
@@ -16,7 +16,7 @@ except LookupError:
     ascii = codecs.lookup('ascii')
     codecs.register(lambda name, enc=ascii: {True: enc}.get(name == 'mbcs'))
 
-VERSION = '0.20.15'
+VERSION = '0.20.16'
 
 tests_require = ['mock >= 2.0.0', 'pytest', 'pytest-mock', 'parameterized']