diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py
index 2bb7230..d5b3b22 100644
--- a/Lib/test/test_zipimport.py
+++ b/Lib/test/test_zipimport.py
@@ -513,6 +513,19 @@
                  "some.data": (NOW, "some data")}
         self.doTest(pyc_ext, files, TESTMOD)
 
+    def testDefaultOptimizationLevel(self):
+        # zipimport should use the default optimization level (#28131)
+        src = """if 1:  # indent hack
+        def test(val):
+            assert(val)
+            return val\n"""
+        files = {TESTMOD + '.py': (NOW, src)}
+        self.makeZip(files)
+        sys.path.insert(0, TEMP_ZIP)
+        mod = importlib.import_module(TESTMOD)
+        self.assertEqual(mod.test(1), 1)
+        self.assertRaises(AssertionError, mod.test, False)
+
     def testImport_WithStuff(self):
         # try importing from a zipfile which contains additional
         # stuff at the beginning of the file
diff --git a/Misc/NEWS b/Misc/NEWS
index 246ac72..e61e98b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
 Core and Builtins
 -----------------
 
+- Issue #28131: Fix a regression in zipimport's compile_source().  zipimport
+  should use the same optimization level as the interpreter.
+
 - Issue #25221: Fix corrupted result from PyLong_FromLong(0) when
   Python is compiled with NSMALLPOSINTS = 0.
 
diff --git a/Modules/zipimport.c b/Modules/zipimport.c
index 92a82e6..7473a8f 100644
--- a/Modules/zipimport.c
+++ b/Modules/zipimport.c
@@ -1370,7 +1370,7 @@
     }
 
     code = Py_CompileStringObject(PyBytes_AsString(fixed_source),
-                                  pathname, Py_file_input, NULL, 1);
+                                  pathname, Py_file_input, NULL, -1);
 
     Py_DECREF(fixed_source);
     return code;
