diff --git a/CHANGELOG b/CHANGELOG
index 5e8f7ce..b21e68e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,8 @@ Improvements:
 
   * EnpkgVersion.from_string now handles versions of the form `1.3.0`, with the
     build number being implicitly 0.
+  * EggMetadata.from_egg now handles eggs built for RedHat Enterprise
+    Linux 3 (#88).
 
 Internals:
 
diff --git a/okonomiyaki/platforms/epd_platform.py b/okonomiyaki/platforms/epd_platform.py
index ec327a9..433605a 100644
--- a/okonomiyaki/platforms/epd_platform.py
+++ b/okonomiyaki/platforms/epd_platform.py
@@ -136,7 +136,9 @@ class EPDPlatform(HasTraits):
         elif platform == "win32":
             epd_name = "win"
         elif platform.startswith("linux"):
-            if osdist in (None, "RedHat_5"):
+            if osdist == "RedHat_3":
+                epd_name = "rh3"
+            elif osdist in (None, "RedHat_5"):
                 epd_name = "rh5"
             elif osdist == "RedHat_6":
                 epd_name = "rh6"

Okonomiyaki fails to parse existing RedHat3-built eggs
```python
    metadata = file_formats.EggMetadata.from_egg(path)
  File "okonomiyaki/file_formats/_egg_info.py", line 627, in from_egg
    spec_depend = LegacySpecDepend.from_egg(path_or_file)
  File "okonomiyaki/file_formats/_egg_info.py", line 387, in from_egg
    return cls.from_string(spec_depend_string)
  File "okonomiyaki/file_formats/_egg_info.py", line 391, in from_string
    data, epd_platform = _normalized_info_from_string(spec_depend_string)
  File "okonomiyaki/file_formats/_egg_info.py", line 562, in _normalized_info_from_string
    epd_platform = _epd_platform_from_raw_spec(data)
  File "okonomiyaki/file_formats/_egg_info.py", line 307, in _epd_platform_from_raw_spec
    platform_string, osdist_string, arch_string
  File "okonomiyaki/platforms/epd_platform.py", line 135, in _from_spec_depend_data
    raise ValueError(msg)
ValueError: Unrecognized platform/osdist combination: 'linux2'/'RedHat_3'
```
diff --git a/okonomiyaki/platforms/tests/test_epd_platform.py b/okonomiyaki/platforms/tests/test_epd_platform.py
index e2d8729..b566340 100644
--- a/okonomiyaki/platforms/tests/test_epd_platform.py
+++ b/okonomiyaki/platforms/tests/test_epd_platform.py
@@ -327,6 +327,8 @@ class TestGuessEPDPlatform(unittest.TestCase):
         examples = (
             (("linux2", None, "x86"),
              EPDPlatform.from_epd_string("rh5-32"),),
+            (("linux2", "RedHat_3", "x86"),
+             EPDPlatform.from_epd_string("rh3-32"),),
             (("linux2", "RedHat_5", "x86"),
              EPDPlatform.from_epd_string("rh5-32"),),
             (("linux2", "RedHat_5", "amd64"),

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
3.7
dev_requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
docutils==0.20.1
enum34==1.1.10
exceptiongroup==1.2.2
flake8==5.0.4
haas==0.9.0
importlib-metadata==4.2.0
iniconfig==2.0.0
mccabe==0.7.0
mock==1.0.1
-e git+https://github.com/enthought/okonomiyaki.git@231ef105738438f69c19c1805d9df1e410b9630a#egg=okonomiyaki
packaging==24.0
pbr==6.1.1
pluggy==1.2.0
pycodestyle==2.9.1
pyflakes==2.5.0
pytest==7.4.4
statistics==1.0.3.5
stevedore==3.5.2
tomli==2.0.1
typing_extensions==4.7.1
zipfile2==0.0.12
zipp==3.15.0

name: okonomiyaki
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
  - certifi=2022.12.7=py37h06a4308_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=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.2.7
      - docutils==0.20.1
      - enum34==1.1.10
      - exceptiongroup==1.2.2
      - flake8==5.0.4
      - haas==0.9.0
      - importlib-metadata==4.2.0
      - iniconfig==2.0.0
      - mccabe==0.7.0
      - mock==1.0.1
      - packaging==24.0
      - pbr==6.1.1
      - pluggy==1.2.0
      - pycodestyle==2.9.1
      - pyflakes==2.5.0
      - pytest==7.4.4
      - statistics==1.0.3.5
      - stevedore==3.5.2
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - zipfile2==0.0.12
      - zipp==3.15.0
prefix: /opt/conda/envs/okonomiyaki

okonomiyaki/platforms/tests/test_epd_platform.py::TestGuessEPDPlatform::test_from_spec_depend_data
okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatform::test_epd_platform_from_string okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatform::test_epd_platform_from_string_new_arch okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatform::test_epd_platform_from_string_new_names okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatform::test_epd_platform_from_string_new_names_underscore okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatform::test_from_running_python okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatform::test_from_running_system okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatform::test_guessed_epd_platform okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatform::test_short_names_consistency okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatformApplies::test_all okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatformApplies::test_applies_rh okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatformApplies::test_current_linux okonomiyaki/platforms/tests/test_epd_platform.py::TestEPDPlatformApplies::test_current_windows okonomiyaki/platforms/tests/test_epd_platform.py::TestGuessEPDPlatform::test_from_epd_platform_string okonomiyaki/platforms/tests/test_epd_platform.py::TestGuessEPDPlatform::test_from_epd_platform_string_invalid okonomiyaki/platforms/tests/test_epd_platform.py::TestGuessEPDPlatform::test_guess_darwin_platform okonomiyaki/platforms/tests/test_epd_platform.py::TestGuessEPDPlatform::test_guess_linux2_platform okonomiyaki/platforms/tests/test_epd_platform.py::TestGuessEPDPlatform::test_guess_linux2_unsupported okonomiyaki/platforms/tests/test_epd_platform.py::TestGuessEPDPlatform::test_guess_solaris_unsupported okonomiyaki/platforms/tests/test_epd_platform.py::TestGuessEPDPlatform::test_guess_win32_platform
okonomiyaki/platforms/epd_platform.py CHANGELOG
okonomiyaki/platforms/epd_platform.py CHANGELOG