diff --git a/pySim/filesystem.py b/pySim/filesystem.py
index 6b20db5..4c3308c 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -34,7 +34,7 @@
 from cmd2 import CommandSet, with_default_category, with_argparser
 import argparse
 
-from typing import cast, Optional, Iterable, List, Any, Dict, Tuple
+from typing import cast, Optional, Iterable, List, Dict, Tuple
 
 from smartcard.util import toBytes
 
@@ -354,7 +354,7 @@
                 sels.update({x.name: x for x in self.applications.values() if x.name})
         return sels
 
-    def decode_select_response(self, data_hex:str) -> Any:
+    def decode_select_response(self, data_hex:str) -> object:
         """Decode the response to a SELECT command.
 
         This is the fall-back method which automatically defers to the standard decoding
diff --git a/pySim/profile.py b/pySim/profile.py
index 768064f..8f3e986 100644
--- a/pySim/profile.py
+++ b/pySim/profile.py
@@ -24,7 +24,6 @@
 from pySim.commands import SimCardCommands
 from pySim.filesystem import CardApplication, interpret_sw
 from pySim.utils import all_subclasses
-from typing import Any
 import abc
 import operator
 
@@ -107,7 +106,7 @@
 		return interpret_sw(self.sw, sw)
 
 	@staticmethod
-	def decode_select_response(data_hex:str) -> Any:
+	def decode_select_response(data_hex:str) -> object:
 		"""Decode the response to a SELECT command.
 
 		This is the fall-back method which doesn't perform any decoding. It mostly
diff --git a/pySim/ts_102_221.py b/pySim/ts_102_221.py
index 1d10988..adb40c1 100644
--- a/pySim/ts_102_221.py
+++ b/pySim/ts_102_221.py
@@ -673,7 +673,7 @@
         super().__init__(name, desc='ETSI TS 102 221', cla="00", sel_ctrl="0004", files_in_mf=files, sw=sw)
 
     @staticmethod
-    def decode_select_response(resp_hex:str) -> Any:
+    def decode_select_response(resp_hex:str) -> object:
         """ETSI TS 102 221 Section 11.1.1.3"""
         fixup_fcp_proprietary_tlv_map(FCP_Proprietary_TLV_MAP)
         resp_hex = resp_hex.upper()
diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py
index f330460..847ed98 100644
--- a/pySim/ts_51_011.py
+++ b/pySim/ts_51_011.py
@@ -979,7 +979,7 @@
         super().__init__('SIM', desc='GSM SIM Card', cla="a0", sel_ctrl="0000", files_in_mf=[DF_TELECOM(), DF_GSM()], sw=sw)
 
     @staticmethod
-    def decode_select_response(resp_hex:str) -> Any:
+    def decode_select_response(resp_hex:str) -> object:
         resp_bin = h2b(resp_hex)
         struct_of_file_map = {
             0: 'transparent',
