diff --git a/iat-verifier/iatverifier/attest_token_verifier.py b/iat-verifier/iatverifier/attest_token_verifier.py
index bc49638..d442a0b 100644
--- a/iat-verifier/iatverifier/attest_token_verifier.py
+++ b/iat-verifier/iatverifier/attest_token_verifier.py
@@ -445,13 +445,23 @@
             for token_item_dict in token_item.value:
                 token_dict = {}
                 for key, claim_token_item in token_item_dict.items():
-                    token_dict[key] = claim_token_item.get_token_map()
+                    if isinstance(claim_token_item, TokenItem):
+                        token_dict[key] = claim_token_item.get_token_map()
+                    else:
+                        # The claim was not recognised, so just adding it as it
+                        # was in the map:
+                        token_dict[key] = claim_token_item
                 ret.append(token_dict)
             return ret
         else:
             token_dict = {}
             for key, claim_token_item in token_item.value.items():
-                token_dict[key] = claim_token_item.get_token_map()
+                if isinstance(claim_token_item, TokenItem):
+                    token_dict[key] = claim_token_item.get_token_map()
+                else:
+                    # The claim was not recognised, so just adding it as it
+                    # was in the map:
+                    token_dict[key] = claim_token_item
             return token_dict
 
 @dataclass
diff --git a/iat-verifier/tests/test_utils.py b/iat-verifier/tests/test_utils.py
index 8059139..e08d3a2 100644
--- a/iat-verifier/tests/test_utils.py
+++ b/iat-verifier/tests/test_utils.py
@@ -76,6 +76,7 @@
             check_p_header=check_p_header,
             lower_case_key=False)
     token_item.verify()
+    token_item.get_token_map()
     return token_item
 
 def create_and_read_iat(data_dir, source_name, verifier):
