diff --git a/asusrouter/modules/firmware.py b/asusrouter/modules/firmware.py
index b8a32b8..a18c6aa 100644
--- a/asusrouter/modules/firmware.py
+++ b/asusrouter/modules/firmware.py
@@ -166,7 +166,8 @@ def from_string(self, fw_string: Optional[str] = None) -> None:
             if major and "." not in major and len(major) == 4
             else major
         )
-        beta = major[0] == "9"
+        # Only if major version exists and has 0 member
+        beta = major[0] == "9" if major and len(major) > 0 else False
         # Minor version
         minor = safe_int(re_match.group("minor"))
         # Build version
diff --git a/pyproject.toml b/pyproject.toml
index b347bd2..c370629 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
 
 [project]
 name            = "asusrouter"
-version         = "1.12.1"
+version         = "1.12.2"
 license         = {text = "Apache-2.0"}
 requires-python = ">=3.11.0"
 readme          = "README.md"
diff --git a/tests/modules/test_firmware.py b/tests/modules/test_firmware.py
index 627d3a0..b9d9ecb 100644
--- a/tests/modules/test_firmware.py
+++ b/tests/modules/test_firmware.py
@@ -159,6 +159,8 @@ def test_update_source(self, revision, expected_source):
                 False,
                 False,
             ),
+            # Additional cases
+            (".386.7_120", None, 386, 7, 120, False, False),
             # Invalid input
             ("", None, None, None, None, False, False),
             ("invalid", None, None, None, None, False, False),