diff --git a/freezegun/api.py b/freezegun/api.py
index 13484ca..6096896 100644
--- a/freezegun/api.py
+++ b/freezegun/api.py
@@ -26,10 +26,9 @@ real_time = time.time
 real_localtime = time.localtime
 real_gmtime = time.gmtime
 real_strftime = time.strftime
-real_timegm = calendar.timegm
 real_date = datetime.date
 real_datetime = datetime.datetime
-real_date_objects = [real_time, real_localtime, real_gmtime, real_strftime, real_timegm, real_date, real_datetime]
+real_date_objects = [real_time, real_localtime, real_gmtime, real_strftime, real_date, real_datetime]
 
 if _TIME_NS_PRESENT:
     real_time_ns = time.time_ns
@@ -183,7 +182,7 @@ def fake_time():
     if _should_use_real_time():
         return real_time()
     current_time = get_current_time()
-    return real_timegm(current_time.timetuple()) + current_time.microsecond / 1000000.0
+    return calendar.timegm(current_time.timetuple()) + current_time.microsecond / 1000000.0
 
 if _TIME_NS_PRESENT:
     def fake_time_ns():
@@ -219,14 +218,6 @@ def fake_strftime(format, time_to_format=None):
     else:
         return real_strftime(format, time_to_format)
 
-
-def fake_timegm(struct_time):
-    if _should_use_real_time():
-        return real_timegm(struct_time)
-    else:
-        return real_timegm(get_current_time().timetuple())
-
-
 if real_clock is not None:
     def fake_clock():
         if _should_use_real_time():
@@ -598,8 +589,6 @@ class _freeze_time(object):
             return freeze_factory
 
         # Change the modules
-        calendar.timegm = fake_timegm
-
         datetime.datetime = FakeDatetime
         datetime.date = FakeDate
 
@@ -623,7 +612,6 @@ class _freeze_time(object):
             ('real_localtime', real_localtime, fake_localtime),
             ('real_strftime', real_strftime, fake_strftime),
             ('real_time', real_time, fake_time),
-            ('real_timegm', real_timegm, fake_timegm),
         ]
 
         if _TIME_NS_PRESENT:
@@ -670,7 +658,6 @@ class _freeze_time(object):
         tz_offsets.pop()
 
         if not freeze_factories:
-            calendar.timegm = real_timegm
             datetime.datetime = real_datetime
             datetime.date = real_date
             copyreg.dispatch_table.pop(real_datetime)

version 0.3.13 break previous behavior with webtest
Hello, i'm using freezegun with webtest to check a cookie auth mecanism. It's working perfectly fine until freezegun 0.3.13.

Sample of broken test (see also https://travis-ci.org/tracim/tracim/jobs/636791961?utm_medium=notification&utm_source=github_status): 
```
    def test_api__test_cookie_auth_token__ok__revocation_case(self, web_testapp):
        with freeze_time("1999-12-31 23:59:59"):
            params = {"email": "admin@admin.admin", "password": "admin@admin.admin"}
            res = web_testapp.post_json("/api/v2/auth/login", params=params, status=200)
            assert "Set-Cookie" in res.headers
>           assert "session_key" in web_testapp.cookies
E           AssertionError: assert 'session_key' in {}
E            +  where {} = <webtest.app.TestApp object at 0x7fd9ec7c1f28>.cookies
```

Do you have any idea why the new version can break this test ?
diff --git a/tests/another_module.py b/tests/another_module.py
index 936bd7d..637c889 100644
--- a/tests/another_module.py
+++ b/tests/another_module.py
@@ -1,4 +1,3 @@
-from calendar import timegm
 from datetime import date, datetime
 from time import time, localtime, gmtime, strftime
 
@@ -9,7 +8,6 @@ from freezegun.api import (
     fake_localtime,
     fake_gmtime,
     fake_strftime,
-    fake_timegm,
 )
 
 
@@ -39,10 +37,6 @@ def get_strftime():
     return strftime
 
 
-def get_timegm():
-    return timegm
-
-
 # Fakes
 
 def get_fake_datetime():
@@ -67,7 +61,3 @@ def get_fake_gmtime():
 
 def get_fake_strftime():
     return fake_strftime
-
-
-def get_fake_timegm():
-    return fake_timegm
diff --git a/tests/test_class_import.py b/tests/test_class_import.py
index 36a6178..1c98215 100644
--- a/tests/test_class_import.py
+++ b/tests/test_class_import.py
@@ -1,5 +1,3 @@
-import calendar
-import datetime
 import time
 import sys
 from .fake_module import (
@@ -19,8 +17,8 @@ from freezegun.api import (
     fake_localtime,
     fake_gmtime,
     fake_strftime,
-    fake_timegm,
 )
+import datetime
 
 
 @freeze_time("2012-01-14")
@@ -150,8 +148,6 @@ def test_import_after_start():
         assert another_module.get_gmtime() is fake_gmtime
         assert another_module.get_strftime() is time.strftime
         assert another_module.get_strftime() is fake_strftime
-        assert another_module.get_timegm() is calendar.timegm
-        assert another_module.get_timegm() is fake_timegm
 
         # Fakes
         assert another_module.get_fake_datetime() is FakeDatetime
@@ -160,7 +156,6 @@ def test_import_after_start():
         assert another_module.get_fake_localtime() is fake_localtime
         assert another_module.get_fake_gmtime() is fake_gmtime
         assert another_module.get_fake_strftime() is fake_strftime
-        assert another_module.get_fake_timegm() is fake_timegm
 
     # Reals
     assert another_module.get_datetime() is datetime.datetime
@@ -175,8 +170,6 @@ def test_import_after_start():
     assert not another_module.get_gmtime() is fake_gmtime
     assert another_module.get_strftime() is time.strftime
     assert not another_module.get_strftime() is fake_strftime
-    assert another_module.get_timegm() is calendar.timegm
-    assert not another_module.get_timegm() is fake_timegm
 
     # Fakes
     assert another_module.get_fake_datetime() is FakeDatetime
@@ -185,7 +178,6 @@ def test_import_after_start():
     assert another_module.get_fake_localtime() is fake_localtime
     assert another_module.get_fake_gmtime() is fake_gmtime
     assert another_module.get_fake_strftime() is fake_strftime
-    assert another_module.get_fake_timegm() is fake_timegm
 
 
 def test_none_as_initial():
diff --git a/tests/test_datetimes.py b/tests/test_datetimes.py
index 4689dcf..9bafb49 100644
--- a/tests/test_datetimes.py
+++ b/tests/test_datetimes.py
@@ -211,13 +211,6 @@ def test_time_gmtime():
         assert time_struct.tm_isdst == -1
 
 
-def test_calendar_timegm():
-    time_struct = time.gmtime()
-    assert calendar.timegm(time_struct) != 1326511294
-    with freeze_time('2012-01-14 03:21:34'):
-        assert calendar.timegm(time_struct) == 1326511294
-
-
 @pytest.mark.skipif(not HAS_CLOCK,
                     reason="time.clock was removed in Python 3.8")
 def test_time_clock():
@@ -652,7 +645,8 @@ def test_should_use_real_time():
     from freezegun import api
     api.call_stack_inspection_limit = 100  # just to increase coverage
 
-    current_time = time.gmtime()
+    timestamp_to_convert = 1579602312
+    time_tuple = time.gmtime(timestamp_to_convert)
 
     with freeze_time(frozen):
         assert time.time() == expected_frozen
@@ -663,7 +657,8 @@ def test_should_use_real_time():
         if HAS_TIME_NS:
             assert time.time_ns() == expected_frozen * 1e9
 
-        assert calendar.timegm(current_time) == expected_frozen
+        assert calendar.timegm(time.gmtime()) == expected_frozen
+        assert calendar.timegm(time_tuple) == timestamp_to_convert
 
     with freeze_time(frozen, ignore=['_pytest', 'nose']):
         assert time.time() != expected_frozen
@@ -674,7 +669,8 @@ def test_should_use_real_time():
         if HAS_TIME_NS:
             assert time.time_ns() != expected_frozen * 1e9
 
-        assert calendar.timegm(current_time) != expected_frozen
+        assert calendar.timegm(time.gmtime()) != expected_frozen
+        assert calendar.timegm(time_tuple) == timestamp_to_convert
 
 
 @pytest.mark.skipif(not HAS_TIME_NS,

pip install -e .[dev]
parse_log_pytest
requirements.txt
apt-get update apt-get install -y gcc
3.8
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
backports.zoneinfo==0.2.1
certifi==2025.1.31
charset-normalizer==3.4.1
coverage==7.6.1
coveralls==4.0.1
dateparser==1.2.1
docopt==0.6.2
exceptiongroup==1.2.2
-e git+https://github.com/spulec/freezegun.git@2e95d89fb7b4eed9b5242df1a1d9e74c01721b76#egg=freezegun
humanize==4.10.0
idna==3.10
importlib_resources==6.4.5
iniconfig==2.1.0
maya==0.6.1
mock==5.2.0
packaging==24.2
pendulum==3.0.0
pluggy==1.5.0
pytest==8.3.5
pytest-cov==5.0.0
pytest-cover==3.0.0
pytest-coverage==0.0
python-dateutil==2.9.0.post0
pytz==2025.2
regex==2024.11.6
requests==2.32.3
six==1.17.0
snaptime==0.2.4
time-machine==2.15.0
tomli==2.2.1
tzdata==2025.2
tzlocal==5.2
urllib3==2.2.3
zipp==3.20.2

name: freezegun
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=24.2=py38h06a4308_0
  - python=3.8.20=he870216_0
  - readline=8.2=h5eee18b_0
  - setuptools=75.1.0=py38h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.44.0=py38h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - backports-zoneinfo==0.2.1
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - coverage==7.6.1
      - coveralls==4.0.1
      - dateparser==1.2.1
      - docopt==0.6.2
      - exceptiongroup==1.2.2
      - freezegun==0.3.13
      - humanize==4.10.0
      - idna==3.10
      - importlib-resources==6.4.5
      - iniconfig==2.1.0
      - maya==0.6.1
      - mock==5.2.0
      - packaging==24.2
      - pendulum==3.0.0
      - pluggy==1.5.0
      - pytest==8.3.5
      - pytest-cov==5.0.0
      - pytest-cover==3.0.0
      - pytest-coverage==0.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - regex==2024.11.6
      - requests==2.32.3
      - six==1.17.0
      - snaptime==0.2.4
      - time-machine==2.15.0
      - tomli==2.2.1
      - tzdata==2025.2
      - tzlocal==5.2
      - urllib3==2.2.3
      - zipp==3.20.2
prefix: /opt/conda/envs/freezegun

tests/test_datetimes.py::test_should_use_real_time
tests/test_class_import.py::test_import_after_start
tests/test_class_import.py::test_import_datetime_works tests/test_class_import.py::test_import_date_works tests/test_class_import.py::test_import_time tests/test_class_import.py::test_start_and_stop_works tests/test_class_import.py::test_isinstance_works tests/test_class_import.py::test_issubclass_works tests/test_class_import.py::test_fake_uses_real_when_ignored tests/test_class_import.py::test_can_ignore_email_module tests/test_class_import.py::test_avoid_replacing_equal_to_anything tests/test_class_import.py::test_import_localtime tests/test_class_import.py::test_fake_gmtime_function tests/test_class_import.py::test_fake_strftime_function tests/test_class_import.py::test_none_as_initial tests/test_datetimes.py::test_simple_api tests/test_datetimes.py::test_tz_offset tests/test_datetimes.py::test_timedelta_tz_offset tests/test_datetimes.py::test_tz_offset_with_today tests/test_datetimes.py::test_zero_tz_offset_with_time tests/test_datetimes.py::test_tz_offset_with_time tests/test_datetimes.py::test_time_with_microseconds tests/test_datetimes.py::test_time_with_dst tests/test_datetimes.py::test_manual_increment tests/test_datetimes.py::test_manual_increment_seconds tests/test_datetimes.py::test_move_to tests/test_datetimes.py::test_bad_time_argument tests/test_datetimes.py::test_time_gmtime tests/test_datetimes.py::test_time_localtime tests/test_datetimes.py::test_strftime tests/test_datetimes.py::test_real_strftime_fall_through tests/test_datetimes.py::test_date_object tests/test_datetimes.py::test_old_date_object tests/test_datetimes.py::test_invalid_type tests/test_datetimes.py::test_datetime_object tests/test_datetimes.py::test_function_object tests/test_datetimes.py::test_lambda_object tests/test_datetimes.py::test_generator_object tests/test_datetimes.py::test_maya_datetimes tests/test_datetimes.py::test_old_datetime_object tests/test_datetimes.py::test_decorator tests/test_datetimes.py::test_decorator_wrapped_attribute tests/test_datetimes.py::Tester::test_the_class tests/test_datetimes.py::Tester::test_still_the_same tests/test_datetimes.py::Tester::test_class_name_preserved_by_decorator tests/test_datetimes.py::Tester::test_class_decorator_ignores_nested_class tests/test_datetimes.py::Tester::test_class_decorator_wraps_callable_object_py3 tests/test_datetimes.py::Tester::test_class_decorator_respects_staticmethod tests/test_datetimes.py::test_nice_datetime tests/test_datetimes.py::test_datetime_date_method tests/test_datetimes.py::test_context_manager tests/test_datetimes.py::test_nested_context_manager tests/test_datetimes.py::test_nested_context_manager_with_tz_offsets tests/test_datetimes.py::test_isinstance_with_active tests/test_datetimes.py::test_isinstance_without_active tests/test_datetimes.py::TestUnitTestClassDecorator::test_class_decorator_works_on_unittest tests/test_datetimes.py::TestUnitTestClassDecorator::test_class_name_preserved_by_decorator tests/test_datetimes.py::TestUnitTestClassDecoratorWithNoSetUpOrTearDown::test_class_decorator_works_on_unittest tests/test_datetimes.py::TestUnitTestClassDecoratorSubclass::test_class_decorator_works_on_unittest tests/test_datetimes.py::TestUnitTestClassDecoratorSubclass::test_class_name_preserved_by_decorator tests/test_datetimes.py::UnfrozenInheritedTests::test_time_is_not_frozen tests/test_datetimes.py::FrozenInheritedTests::test_time_is_frozen tests/test_datetimes.py::TestOldStyleClasses::test_direct_method tests/test_datetimes.py::TestOldStyleClasses::test_inherited_method tests/test_datetimes.py::test_min_and_max tests/test_datetimes.py::test_freeze_with_timezone_aware_datetime_in_utc tests/test_datetimes.py::test_freeze_with_timezone_aware_datetime_in_non_utc tests/test_datetimes.py::test_time_with_nested tests/test_datetimes.py::test_time_ns
freezegun/api.py
freezegun/api.py