diff --git a/src/sakia/core/registry/identity.py b/src/sakia/core/registry/identity.py
index 51cd2749f05b2884052eed69c72d0f0f3e404dc1..1393f73784764391a7d01c5315a1402e7ec11785 100644
--- a/src/sakia/core/registry/identity.py
+++ b/src/sakia/core/registry/identity.py
@@ -88,10 +88,10 @@ class Identity(QObject):
         uid = json_data['uid']
         local_state = LocalState[json_data['local_state']]
         blockchain_state = BlockchainState[json_data['blockchain_state']]
-        if version < parse_version("0.20.0dev0"):
-            sigdate = BlockUID.empty()
-        else:
+        if version >= parse_version("0.20.0dev0") and json_data['sigdate']:
             sigdate = BlockUID.from_str(json_data['sigdate'])
+        else:
+            sigdate = BlockUID.empty()
 
         return cls(uid, pubkey, sigdate, local_state, blockchain_state)
 
@@ -516,7 +516,7 @@ class Identity(QObject):
         """
         data = {'uid': self.uid,
                 'pubkey': self.pubkey,
-                'sigdate': str(self._sigdate),
+                'sigdate': str(self._sigdate) if self._sigdate else None,
                 'local_state': self.local_state.name,
                 'blockchain_state': self.blockchain_state.name}
         return data