diff --git a/setup.py b/setup.py
index 23977ed77a..b679181bda 100755
--- a/setup.py
+++ b/setup.py
@@ -59,7 +59,7 @@ def run_tests(self):
     sys.exit()
 
 requires = [
-    "charset_normalizer>=2,<3",
+    "charset_normalizer>=2,<4",
     "idna>=2.5,<4",
     "urllib3>=1.21.1,<1.27",
     "certifi>=2017.4.17",
diff --git a/setup.cfg b/setup.cfg
index 33af66eb15..0c167eb8c9 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -5,7 +5,7 @@ provides-extra =
 	use_chardet_on_py3
 requires-dist = 
 	certifi>=2017.4.17
-	charset_normalizer>=2,<3
+	charset_normalizer>=2,<4
 	idna>=2.5,<4
 	urllib3>=1.21.1,<1.27
 
diff --git a/requests/__init__.py b/requests/__init__.py
index 7ac8e297b8..5812c85d8a 100644
--- a/requests/__init__.py
+++ b/requests/__init__.py
@@ -80,8 +80,8 @@ def check_compatibility(urllib3_version, chardet_version, charset_normalizer_ver
     elif charset_normalizer_version:
         major, minor, patch = charset_normalizer_version.split(".")[:3]
         major, minor, patch = int(major), int(minor), int(patch)
-        # charset_normalizer >= 2.0.0 < 3.0.0
-        assert (2, 0, 0) <= (major, minor, patch) < (3, 0, 0)
+        # charset_normalizer >= 2.0.0 < 4.0.0
+        assert (2, 0, 0) <= (major, minor, patch) < (4, 0, 0)
     else:
         raise Exception("You need either charset_normalizer or chardet installed")
 
