diff --git a/README.md b/README.md
index b52f8a2cc906d74d87fe435d339787f45203b8b6..2f7d00c3275395a9599d74df48978a4839e9f891 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+[PACKAGE]: ../../raw/master/snmp_uptime-0.0.2-20230805.mkp "snmp_uptime-0.0.2-20230805.mkp"
 # SNMP uptime
 
 This check is based on the snmp_uptime check form CMK. It adds the SNMP-FRAMEWORK-MIB::snmpEngineTime OID to the check. Its value is in seconds not ticks and therefore the Uptime can now be around 68 years before a rollover of the counter :-)
diff --git a/agent_based/snmp_uptime.py b/agent_based/snmp_uptime.py
index 10c5a1f54b21d2c848afedf82a614389787659e6..41e0273ab9dd9428110594ed2834d35c8cd8d5d7 100644
--- a/agent_based/snmp_uptime.py
+++ b/agent_based/snmp_uptime.py
@@ -14,7 +14,7 @@
 # 2022-03-06: extended to use snmpEngineTime if available
 # 2022-03-07: fixed if snmpEngineTime == 0
 # 2022-03-08: renamed to snmp_uptime_extended to avoid caching issues with the original check
-#
+# 2023-08-05: made parse function more stable (try/except/else)
 
 from typing import Optional
 
@@ -35,22 +35,23 @@ def parse_snmp_uptime_extended(string_table: StringTable) -> Optional[uptime.Sec
     Section(uptime_sec=313671, message=None)
 
     """
-    if not string_table:
-        return None
-
-    sysUpTime, hrSystemUptime, snmpEngineTime = string_table[0]
+    try:
+        sysUpTime, hrSystemUptime, snmpEngineTime = string_table[0]
+    except ValueError:
+        return
 
     ticks = sysUpTime or hrSystemUptime
 
     if len(ticks) < 3:
-        return None
+        return
 
     try:
         value = int(snmpEngineTime)
-        if value > 0:
-            return uptime.Section(int(snmpEngineTime), None)
     except ValueError:
         pass
+    else:
+        if value > 0:
+            return uptime.Section(int(snmpEngineTime), None)
 
     try:
         return uptime.Section(int(ticks[:-2]), None)
@@ -59,14 +60,13 @@ def parse_snmp_uptime_extended(string_table: StringTable) -> Optional[uptime.Sec
 
     try:
         days, h, m, s = ticks.split(":")
+    except ValueError:
+        pass
+    else:
         return uptime.Section(
             (int(days) * 86400) + (int(h) * 3600) + (int(m) * 60) + int(float(s)),
             None,
         )
-    except ValueError:
-        pass
-
-    return None
 
 
 register.snmp_section(
diff --git a/packages/snmp_uptime b/packages/snmp_uptime
index b8c3394217e6c432ac8e9f0a07c93d6ab2a2bc9a..922b4a0930884b36bd8e2745ce249bb63ca7530f 100644
--- a/packages/snmp_uptime
+++ b/packages/snmp_uptime
@@ -7,9 +7,8 @@
  'download_url': 'https://thl-cmk.hopto.org',
  'files': {'agent_based': ['snmp_uptime.py']},
  'name': 'snmp_uptime',
- 'num_files': 1,
  'title': 'SNMP Uptime',
- 'version': '20220306.v0.0.1',
- 'version.min_required': '2021.09.20',
- 'version.packaged': '2021.09.20',
- 'version.usable_until': None}
\ No newline at end of file
+ 'version': '0.0.2-20230805',
+ 'version.min_required': '2.0.0b1',
+ 'version.packaged': '2.2.0p7',
+ 'version.usable_until': None}
diff --git a/snmp_uptime-0.0.2-20230805.mkp b/snmp_uptime-0.0.2-20230805.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..ffdf984d70cb9990bdfd1b177ceeae986a5f4984
Binary files /dev/null and b/snmp_uptime-0.0.2-20230805.mkp differ
diff --git a/snmp_uptime.mkp b/snmp_uptime.mkp
deleted file mode 100644
index 816516f34f3d5b449efca0eb7d6cd2c579fbc189..0000000000000000000000000000000000000000
Binary files a/snmp_uptime.mkp and /dev/null differ