diff --git a/community/modemmanager/0001-mr-1274.patch b/community/modemmanager/0001-mr-1274.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7f4fbda24635f73dcb0499776049730b65a0a38d
--- /dev/null
+++ b/community/modemmanager/0001-mr-1274.patch
@@ -0,0 +1,34 @@
+From 5eb8203f8eba57aca55f67d63b309522c281e353 Mon Sep 17 00:00:00 2001
+From: Arnav Singh <me@arnavion.dev>
+Date: Sun, 22 Dec 2024 16:48:06 -0800
+Subject: [PATCH] suspend: support logind not sending PrepareForSleep(true)
+
+elogind sends PrepareForSleep(false) when resuming but doesn't necessarily
+send PrepareForSleep(true) when sleeping. This means we didn't necessarily
+drop our previous inhibitor when it's time to take a new one. So instead of
+asserting that we dropped our previous inhibitor, just reuse it.
+---
+ src/mm-sleep-monitor-systemd.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/mm-sleep-monitor-systemd.c b/src/mm-sleep-monitor-systemd.c
+index 99814386..c432a416 100644
+--- a/src/mm-sleep-monitor-systemd.c
++++ b/src/mm-sleep-monitor-systemd.c
+@@ -114,7 +114,12 @@ inhibit_done (GObject      *source,
+ static void
+ take_inhibitor (MMSleepMonitor *self)
+ {
+-    g_assert (self->inhibit_fd == -1);
++    if (self->inhibit_fd != -1) {
++        // logind didn't send us a `PrepareForSleep(true)` so we didn't drop our previous inhibitor.
++        // Just reuse it.
++        mm_obj_warn (self, "logind did not send sleep notification! Taking over existing inhibitor.");
++        return;
++    }
+ 
+     mm_obj_dbg (self, "taking systemd sleep inhibitor");
+     g_dbus_proxy_call_with_unix_fd_list (self->sd_proxy,
+-- 
+2.48.1
+
diff --git a/community/modemmanager/APKBUILD b/community/modemmanager/APKBUILD
index fff5cf75ab6008e06835ccc8d98144f22578a500..a4dbd6c389d3e9706eddd6b688f3cde8c9689f19 100644
--- a/community/modemmanager/APKBUILD
+++ b/community/modemmanager/APKBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
 pkgname=modemmanager
 pkgver=1.22.0
-pkgrel=1
+pkgrel=2
 pkgdesc="ModemManager library"
 url="https://www.freedesktop.org/wiki/Software/ModemManager"
 arch="all"
@@ -36,6 +36,7 @@ subpackages="
 source="https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/archive/$pkgver/ModemManager-$pkgver.tar.gz
 	$pkgname.rules
 	$pkgname.initd
+	0001-mr-1274.patch
 	"
 builddir="$srcdir"/ModemManager-$pkgver
 
@@ -87,4 +88,5 @@ sha512sums="
 f612ec26fc42943abc546fb246619b03d1a8d4f925edfb78231ffa9ee5f559d701e547fd8152f77d3aee16a78b397464abb948c72764ac2d2846edf07d8c0fcc  ModemManager-1.22.0.tar.gz
 6fab86c27502b29be0c6610d835a3249a4a81993eb986cff2c3ea9393fadd3f693ba4bb0532ae0e50a83d359559511859dd05f7ea2f0cb52839f535a7e49f8a0  modemmanager.rules
 9f74a2473b9cc7be42a467809639f5720ab251d13f29f8bbd4fd9a13edb80c10c5ee50fbe50819bfe67f231805b92f007c3e7403c46ab998dc843e1f9549659b  modemmanager.initd
+d88c9cbff67a36ff559b9e1a7d6b121a4a816e80044874bfcc460667ea792dd9fcc4148115a146d0cdd82f7c5fbaf8341f2e580031349a968e8b6f537bd13dc6  0001-mr-1274.patch
 "