--- a/pysnmp/entity/config.py
+++ b/pysnmp/entity/config.py
@@ -4,7 +4,7 @@
 # Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
 # License: http://snmplabs.com/pysnmp/license.html
 #
-from pyasn1.compat.octets import null
+null = bytes()
 from pysnmp.carrier.asyncore.dgram import udp, udp6, unix
 from pysnmp.proto.secmod.rfc3414.auth import hmacmd5, hmacsha, noauth
 from pysnmp.proto.secmod.rfc3414.priv import des, nopriv
--- a/pysnmp/entity/rfc3413/context.py
+++ b/pysnmp/entity/rfc3413/context.py
@@ -5,7 +5,7 @@
 # License: http://snmplabs.com/pysnmp/license.html
 #
 from pyasn1.type import univ
-from pyasn1.compat.octets import null
+null = bytes()
 from pysnmp import error
 from pysnmp import debug
 
--- a/pysnmp/entity/rfc3413/ntforg.py
+++ b/pysnmp/entity/rfc3413/ntforg.py
@@ -5,7 +5,7 @@
 # License: http://snmplabs.com/pysnmp/license.html
 #
 import sys
-from pyasn1.compat.octets import null
+null = bytes()
 from pysnmp.entity.rfc3413 import config
 from pysnmp.proto.proxy import rfc2576
 from pysnmp.proto import rfc3411
--- a/pysnmp/entity/rfc3413/ntfrcv.py
+++ b/pysnmp/entity/rfc3413/ntfrcv.py
@@ -5,7 +5,7 @@
 # License: http://snmplabs.com/pysnmp/license.html
 #
 import sys
-from pyasn1.compat.octets import null
+null = bytes()
 from pysnmp.proto import rfc3411, error
 from pysnmp.proto.api import v1, v2c  # backend is always SMIv2 compliant
 from pysnmp.proto.proxy import rfc2576
--- a/pysnmp/entity/rfc3413/oneliner/cmdgen.py
+++ b/pysnmp/entity/rfc3413/oneliner/cmdgen.py
@@ -11,7 +11,7 @@
 from pysnmp.hlapi.asyncore import sync
 from pysnmp.hlapi.varbinds import *
 from pysnmp.hlapi.lcd import *
-from pyasn1.compat.octets import null
+null = bytes()
 from pyasn1.type import univ
 
 __all__ = ['AsynCommandGenerator', 'CommandGenerator', 'MibVariable']
--- a/pysnmp/entity/rfc3413/oneliner/ntforg.py
+++ b/pysnmp/entity/rfc3413/oneliner/ntforg.py
@@ -11,7 +11,7 @@
 from pysnmp.hlapi.asyncore import sync
 from pysnmp.hlapi.varbinds import *
 from pysnmp.hlapi.lcd import *
-from pyasn1.compat.octets import null
+null = bytes()
 from pysnmp.entity import config
 from pysnmp.entity.rfc3413 import context
 
--- a/pysnmp/hlapi/auth.py
+++ b/pysnmp/hlapi/auth.py
@@ -6,7 +6,7 @@
 #
 from pysnmp.entity import config
 from pysnmp import error
-from pyasn1.compat.octets import null
+null = bytes()
 
 __all__ = ['CommunityData', 'UsmUserData',
            'usm3DESEDEPrivProtocol', 'usmAesCfb128Protocol',
--- a/pysnmp/hlapi/context.py
+++ b/pysnmp/hlapi/context.py
@@ -4,7 +4,7 @@
 # Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
 # License: http://snmplabs.com/pysnmp/license.html
 #
-from pyasn1.compat.octets import null
+null = bytes()
 
 __all__ = ['ContextData']
 
--- a/pysnmp/hlapi/lcd.py
+++ b/pysnmp/hlapi/lcd.py
@@ -8,7 +8,7 @@
 from pysnmp import nextid, error
 from pysnmp.hlapi.auth import *
 
-from pyasn1.compat.octets import null
+null = bytes()
 
 __all__ = ['CommandGeneratorLcdConfigurator',
            'NotificationOriginatorLcdConfigurator']
--- a/pysnmp/hlapi/transport.py
+++ b/pysnmp/hlapi/transport.py
@@ -4,7 +4,7 @@
 # Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
 # License: http://snmplabs.com/pysnmp/license.html
 #
-from pyasn1.compat.octets import null
+null = bytes()
 from pysnmp.carrier.base import AbstractTransport
 from pysnmp import error
 
--- a/pysnmp/proto/mpmod/rfc2576.py
+++ b/pysnmp/proto/mpmod/rfc2576.py
@@ -7,7 +7,7 @@
 import sys
 from pyasn1.codec.ber import decoder, eoo
 from pyasn1.type import univ
-from pyasn1.compat.octets import null
+null = bytes()
 from pyasn1.error import PyAsn1Error
 from pysnmp.proto.mpmod.base import AbstractMessageProcessingModel
 from pysnmp.proto import rfc3411, errind, error
--- a/pysnmp/proto/secmod/eso/priv/des3.py
+++ b/pysnmp/proto/secmod/eso/priv/des3.py
@@ -11,7 +11,7 @@
 from pysnmp.proto.secmod.rfc7860.auth import hmacsha2
 from pysnmp.proto import errind, error
 from pyasn1.type import univ
-from pyasn1.compat.octets import null
+null = bytes()
 from math import ceil
 
 try:
--- a/pysnmp/proto/secmod/rfc3414/service.py
+++ b/pysnmp/proto/secmod/rfc3414/service.py
@@ -18,7 +18,7 @@
 from pyasn1.type import univ, namedtype, constraint
 from pyasn1.codec.ber import encoder, decoder, eoo
 from pyasn1.error import PyAsn1Error
-from pyasn1.compat.octets import null
+null = bytes()
 
 # API to rfc1905 protocol objects
 pMod = api.protoModules[api.protoVersion2c]
--- a/pysnmp/debug.py
+++ b/pysnmp/debug.py
@@ -5,7 +5,7 @@
 # License: http://snmplabs.com/pysnmp/license.html
 #
 import logging
-from pyasn1.compat.octets import octs2ints
+oct2int = lambda x: x
 from pysnmp import error
 from pysnmp import __version__
 
--- a/pysnmp/entity/engine.py
+++ b/pysnmp/entity/engine.py
@@ -8,7 +8,7 @@
 import shutil
 import sys
 import tempfile
-from pyasn1.compat.octets import str2octs
+str2octs = lambda x: x.encode('iso-8859-1')
 from pysnmp.proto.rfc3412 import MsgAndPduDispatcher
 from pysnmp.proto.mpmod.rfc2576 import SnmpV1MessageProcessingModel, SnmpV2cMessageProcessingModel
 from pysnmp.proto.mpmod.rfc3412 import SnmpV3MessageProcessingModel
--- a/pysnmp/smi/mibs/SNMPv2-TC.py
+++ b/pysnmp/smi/mibs/SNMPv2-TC.py
@@ -10,9 +10,15 @@
 from pysnmp.smi.error import *
 from pysnmp import debug
 from pyasn1.type import univ
-from pyasn1.compat import octets
-from pyasn1.type.base import Asn1Item
+class octets:
+    def ints2octs(x): return bytes
+    def oct2int(x): return x
+    def str2octs(x): return x.encode('iso-8859-1')
+    def octs2str(x): return x.decode('iso-8859-1')
+    def isStringType(x): return isinstance(x, str)
+    def isOctetsType(x): return isinstance(x, bytes)
 
+from pyasn1.type.base import Asn1Item
 OctetString, Integer, ObjectIdentifier = mibBuilder.importSymbols('ASN1', 'OctetString', 'Integer', 'ObjectIdentifier')
 NamedValues, = mibBuilder.importSymbols("ASN1-ENUMERATION", "NamedValues")
 ConstraintsIntersection, ConstraintsUnion, SingleValueConstraint, ValueRangeConstraint, ValueSizeConstraint = mibBuilder.importSymbols("ASN1-REFINEMENT", "ConstraintsIntersection", "ConstraintsUnion", "SingleValueConstraint", "ValueRangeConstraint", "ValueSizeConstraint")
--- a/pysnmp/smi/mibs/SNMPv2-TM.py
+++ b/pysnmp/smi/mibs/SNMPv2-TM.py
@@ -18,7 +18,8 @@
     inet_ntop = lambda x, y: inet_ntoa(y)
     inet_pton = lambda x, y: inet_aton(y)
 
-from pyasn1.compat.octets import int2oct, oct2int
+int2oct = lambda x: bytes((x,))
+oct2int = lambda x: x
 
 OctetString, = mibBuilder.importSymbols('ASN1', 'OctetString')
 ConstraintsIntersection, ConstraintsUnion, SingleValueConstraint, ValueRangeConstraint, ValueSizeConstraint = mibBuilder.importSymbols("ASN1-REFINEMENT", "ConstraintsIntersection", "ConstraintsUnion", "SingleValueConstraint", "ValueRangeConstraint", "ValueSizeConstraint")
--- a/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py
+++ b/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py
@@ -11,7 +11,8 @@
 # Using Python version 3.4.2 (v3.4.2:ab2c023a9432, Oct  5 2014, 20:42:22)
 #
 
-from pyasn1.compat.octets import int2oct, oct2int
+int2oct = lambda x: bytes((x,))
+oct2int = lambda x: x
 from pysnmp import error
 from pysnmp.carrier import sockfix
 import socket
--- a/pysnmp/proto/rfc3412.py
+++ b/pysnmp/proto/rfc3412.py
@@ -5,7 +5,7 @@
 # License: http://snmplabs.com/pysnmp/license.html
 #
 import sys
-from pyasn1.compat.octets import null
+null = bytes()
 from pyasn1.error import PyAsn1Error
 from pysnmp.smi import builder, instrum
 from pysnmp.proto import errind, error, cache
