diff --git a/pySim/apdu/__init__.py b/pySim/apdu/__init__.py
index 4f08113f..84ac83aa 100644
--- a/pySim/apdu/__init__.py
+++ b/pySim/apdu/__init__.py
@@ -29,7 +29,7 @@ import abc
import typing
from typing import List, Dict, Optional
from termcolor import colored
-from construct import Byte, GreedyBytes
+from construct import Byte
from construct import Optional as COptional
from osmocom.construct import *
from osmocom.utils import *
diff --git a/pySim/apdu/ts_31_102.py b/pySim/apdu/ts_31_102.py
index fea50381..692cdfd7 100644
--- a/pySim/apdu/ts_31_102.py
+++ b/pySim/apdu/ts_31_102.py
@@ -9,7 +9,7 @@ APDU commands of 3GPP TS 31.102 V16.6.0
"""
from typing import Dict
-from construct import BitStruct, Enum, BitsInteger, Int8ub, Bytes, this, Struct, If, Switch, Const
+from construct import BitStruct, Enum, BitsInteger, Int8ub, this, Struct, If, Switch, Const
from construct import Optional as COptional
from osmocom.construct import *
diff --git a/pySim/ara_m.py b/pySim/ara_m.py
index e10ae101..9079a973 100644
--- a/pySim/ara_m.py
+++ b/pySim/ara_m.py
@@ -26,7 +26,7 @@ Support for the Secure Element Access Control, specifically the ARA-M inside an
#
-from construct import GreedyBytes, GreedyString, Struct, Enum, Int8ub, Int16ub
+from construct import GreedyString, Struct, Enum, Int8ub, Int16ub
from construct import Optional as COptional
from osmocom.construct import *
from osmocom.tlv import *
diff --git a/pySim/cat.py b/pySim/cat.py
index 448d8742..ae4e06ee 100644
--- a/pySim/cat.py
+++ b/pySim/cat.py
@@ -20,11 +20,11 @@ as described in 3GPP TS 31.111."""
from typing import List
from bidict import bidict
-from construct import Int8ub, Int16ub, Byte, Bytes, BitsInteger
+from construct import Int8ub, Int16ub, Byte, BitsInteger
from construct import Struct, Enum, BitStruct, this
-from construct import GreedyBytes, Switch, GreedyRange, FlagsEnum
+from construct import Switch, GreedyRange, FlagsEnum
from osmocom.tlv import TLV_IE, COMPR_TLV_IE, BER_TLV_IE, TLV_IE_Collection
-from osmocom.construct import PlmnAdapter, BcdAdapter, HexAdapter, GsmStringAdapter, TonNpi, GsmString
+from osmocom.construct import PlmnAdapter, BcdAdapter, HexAdapter, GsmStringAdapter, TonNpi, GsmString, Bytes, GreedyBytes
from osmocom.utils import b2h
from pySim.utils import dec_xplmn_w_act
diff --git a/pySim/global_platform/http.py b/pySim/global_platform/http.py
index dee196de..dbad9ac0 100644
--- a/pySim/global_platform/http.py
+++ b/pySim/global_platform/http.py
@@ -17,9 +17,10 @@ Also known as SCP81 for SIM/USIM/UICC/eUICC/eSIM OTA.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
-from construct import Struct, Int8ub, Int16ub, Bytes, GreedyBytes, GreedyString, BytesInteger
+from construct import Struct, Int8ub, Int16ub, GreedyString, BytesInteger
from construct import this, len_, Rebuild, Const
from construct import Optional as COptional
+from osmocom.construct import Bytes, GreedyBytes
from osmocom.tlv import BER_TLV_IE
from pySim import cat
diff --git a/pySim/global_platform/scp.py b/pySim/global_platform/scp.py
index 72aed24a..e674766e 100644
--- a/pySim/global_platform/scp.py
+++ b/pySim/global_platform/scp.py
@@ -20,8 +20,9 @@ import logging
from typing import Optional
from Cryptodome.Cipher import DES3, DES
from Cryptodome.Util.strxor import strxor
-from construct import Struct, Bytes, Int8ub, Int16ub, Const
+from construct import Struct, Int8ub, Int16ub, Const
from construct import Optional as COptional
+from osmocom.construct import Bytes
from osmocom.utils import b2h
from osmocom.tlv import bertlv_parse_len, bertlv_encode_len
from pySim.utils import parse_command_apdu
diff --git a/pySim/gsm_r.py b/pySim/gsm_r.py
index bc54c721..5798df7a 100644
--- a/pySim/gsm_r.py
+++ b/pySim/gsm_r.py
@@ -26,7 +26,7 @@ order to describe the files specified in UIC Reference P38 T 9001 5.0 "FFFIS for
from pySim.utils import *
from struct import pack, unpack
-from construct import Struct, Bytes, Int8ub, Int16ub, Int24ub, Int32ub, FlagsEnum
+from construct import Struct, Int8ub, Int16ub, Int24ub, Int32ub, FlagsEnum
from construct import Optional as COptional
from osmocom.construct import *
diff --git a/pySim/iso7816_4.py b/pySim/iso7816_4.py
index ae0c2c8d..e9501aaa 100644
--- a/pySim/iso7816_4.py
+++ b/pySim/iso7816_4.py
@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
"""
-from construct import GreedyBytes, GreedyString
+from construct import GreedyString
from osmocom.tlv import *
from osmocom.construct import *
diff --git a/pySim/ota.py b/pySim/ota.py
index 2d1c8d16..a6b563df 100644
--- a/pySim/ota.py
+++ b/pySim/ota.py
@@ -19,7 +19,7 @@ import zlib
import abc
import struct
from typing import Optional, Tuple
-from construct import Enum, Int8ub, Int16ub, Struct, Bytes, GreedyBytes, BitsInteger, BitStruct
+from construct import Enum, Int8ub, Int16ub, Struct, BitsInteger, BitStruct
from construct import Flag, Padding, Switch, this, PrefixedArray, GreedyRange
from osmocom.construct import *
from osmocom.utils import b2h
diff --git a/pySim/sms.py b/pySim/sms.py
index 7e5acf13..7c22c750 100644
--- a/pySim/sms.py
+++ b/pySim/sms.py
@@ -20,10 +20,10 @@
import typing
import abc
from bidict import bidict
-from construct import Int8ub, Byte, Bytes, Bit, Flag, BitsInteger
+from construct import Int8ub, Byte, Bit, Flag, BitsInteger
from construct import Struct, Enum, Tell, BitStruct, this, Padding
-from construct import Prefixed, GreedyRange, GreedyBytes
-from osmocom.construct import HexAdapter, BcdAdapter, TonNpi
+from construct import Prefixed, GreedyRange
+from osmocom.construct import HexAdapter, BcdAdapter, TonNpi, Bytes, GreedyBytes
from osmocom.utils import Hexstr, h2b, b2h
from smpp.pdu import pdu_types, operations
diff --git a/pySim/sysmocom_sja2.py b/pySim/sysmocom_sja2.py
index c145f0f5..438df23b 100644
--- a/pySim/sysmocom_sja2.py
+++ b/pySim/sysmocom_sja2.py
@@ -18,7 +18,7 @@ along with this program. If not, see .
"""
from struct import unpack
-from construct import FlagsEnum, Byte, Struct, Int8ub, Bytes, Mapping, Enum, Padding, BitsInteger
+from construct import FlagsEnum, Byte, Struct, Int8ub, Mapping, Enum, Padding, BitsInteger
from construct import Bit, this, Int32ub, Int16ub, Nibble, BytesInteger, GreedyRange, Const
from construct import Optional as COptional
from osmocom.utils import *
diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py
index c0142bc7..b2816590 100644
--- a/pySim/ts_31_103.py
+++ b/pySim/ts_31_103.py
@@ -22,7 +22,7 @@ Various constants from 3GPP TS 31.103 V18.1.0
# along with this program. If not, see .
#
-from construct import Struct, Switch, this, Bytes, GreedyString
+from construct import Struct, Switch, this, GreedyString
from osmocom.utils import *
from osmocom.tlv import *
from osmocom.construct import *
diff --git a/pySim/ts_31_103_shared.py b/pySim/ts_31_103_shared.py
index 25f3e972..8c56923b 100644
--- a/pySim/ts_31_103_shared.py
+++ b/pySim/ts_31_103_shared.py
@@ -19,9 +19,9 @@ hence need to be in a separate python module to avoid circular dependencies.
# along with this program. If not, see .
#
-from construct import Struct, Switch, Bytes, GreedyString, GreedyBytes, Int8ub, Prefixed, Enum, Byte
+from construct import Struct, Switch, GreedyString, Int8ub, Prefixed, Enum, Byte
from osmocom.tlv import BER_TLV_IE, TLV_IE_Collection
-from osmocom.construct import HexAdapter, Utf8Adapter
+from osmocom.construct import Bytes, HexAdapter, Utf8Adapter, GreedyBytes
from pySim.filesystem import *
# TS 31.103 Section 4.2.16
diff --git a/requirements.txt b/requirements.txt
index 11170da3..9749d7fd 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,7 +5,7 @@ cmd2>=1.5
jsonpath-ng
construct>=2.10.70
bidict
-pyosmocom>=0.0.8
+pyosmocom>=0.0.9
pyyaml>=5.1
termcolor
colorlog
diff --git a/setup.py b/setup.py
index bf9299ca..b33fb67d 100644
--- a/setup.py
+++ b/setup.py
@@ -25,7 +25,7 @@ setup(
"jsonpath-ng",
"construct >= 2.10.70",
"bidict",
- "pyosmocom >= 0.0.8",
+ "pyosmocom >= 0.0.9",
"pyyaml >= 5.1",
"termcolor",
"colorlog",