diff --git a/.ModemManager.metadata b/.ModemManager.metadata
index d95f5fc..044abfb 100644
--- a/.ModemManager.metadata
+++ b/.ModemManager.metadata
@@ -1 +1 @@
-7b439c22ad93924328d450eb9252766d523a9cf6 SOURCES/ModemManager-1.18.2.tar.xz
+a07ff3f71000b16e1a4f4ab4870f742520bd750c SOURCES/ModemManager-1.20.2.tar.bz2
diff --git a/.gitignore b/.gitignore
index 5942b58..e683015 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/ModemManager-1.18.2.tar.xz
+SOURCES/ModemManager-1.20.2.tar.bz2
diff --git a/SOURCES/0001-libmm-glib-common-helpers-avoid-using-mm_new_iso8601.patch b/SOURCES/0001-libmm-glib-common-helpers-avoid-using-mm_new_iso8601.patch
new file mode 100644
index 0000000..d86b5ed
--- /dev/null
+++ b/SOURCES/0001-libmm-glib-common-helpers-avoid-using-mm_new_iso8601.patch
@@ -0,0 +1,48 @@
+From cade7a759cfd98922de0bb96bfb29721d861e25e Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Tue, 13 Dec 2022 18:14:51 +0100
+Subject: [PATCH] libmm-glib,common-helpers: avoid using mm_new_iso8601_time()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It requires newer glib than we do:
+
+  ../libmm-glib/mm-common-helpers.c: In function ‘mm_new_iso8601_time’:
+  ../libmm-glib/mm-common-helpers.c:1787:9: warning: ‘g_time_zone_new_offset’ is deprecated: Not available before 2.58 [-Wdeprecated-declarations]
+   1787 |         tz = g_time_zone_new_offset (offset_minutes * 60);
+        |         ^~
+  In file included from /usr/include/glib-2.0/glib/gdatetime.h:33:
+  /usr/include/glib-2.0/glib/gtimezone.h:67:25: note: declared here
+     67 | GTimeZone *             g_time_zone_new_offset                          (gint32       seconds);
+        |                         ^~~~~~~~~~~~~~~~~~~~~~
+
+Let's not use the routine as opposed to bumping our requirement so that
+we don't lose ability to build on CentOS 8.
+---
+ libmm-glib/mm-common-helpers.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/libmm-glib/mm-common-helpers.c b/libmm-glib/mm-common-helpers.c
+index de49136d..91371e96 100644
+--- a/libmm-glib/mm-common-helpers.c
++++ b/libmm-glib/mm-common-helpers.c
+@@ -1783,8 +1783,14 @@ mm_new_iso8601_time (guint    year,
+ 
+     if (have_offset) {
+         g_autoptr(GTimeZone) tz = NULL;
++        g_autofree gchar *identifier = NULL;
+ 
+-        tz = g_time_zone_new_offset (offset_minutes * 60);
++        identifier = g_strdup_printf ("%c%02u:%02u:00",
++                                      (offset_minutes >= 0) ? '+' : '-',
++                                      ABS (offset_minutes) / 60,
++                                      ABS (offset_minutes) % 60);
++
++        tz = g_time_zone_new (identifier);
+         dt = g_date_time_new (tz, year, month, day, hour, minute, second);
+     } else
+         dt = g_date_time_new_utc (year, month, day, hour, minute, second);
+-- 
+2.38.1
+
diff --git a/SPECS/ModemManager.spec b/SPECS/ModemManager.spec
index 87b845b..9a3bbfc 100644
--- a/SPECS/ModemManager.spec
+++ b/SPECS/ModemManager.spec
@@ -1,14 +1,23 @@
+%if 0%{?fedora} || 0%{?rhel} >= 9
+%bcond_without qrtr
+%else
+%bcond_with qrtr
+%endif
+
 %global glib2_version %(pkg-config --modversion glib-2.0 2>/dev/null || echo bad)
 %global qmi_version %(pkg-config --modversion qmi-glib 2>/dev/null || echo bad)
 %global mbim_version %(pkg-config --modversion mbim-glib 2>/dev/null || echo bad)
 
 Name: ModemManager
-Version: 1.18.2
+Version: 1.20.2
 Release: 1%{?dist}
 Summary: Mobile broadband modem management service
 License: GPLv2+
 URL: http://www.freedesktop.org/wiki/Software/ModemManager/
-Source: https://www.freedesktop.org/software/ModemManager/%{name}-%{version}.tar.xz
+Source: https://gitlab.com/linux-mobile-broadband/ModemManager/-/archive/%{version}/%{name}-%{version}.tar.bz2
+
+# https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/938
+Patch0: 0001-libmm-glib-common-helpers-avoid-using-mm_new_iso8601.patch
 
 # For mbim-proxy and qmi-proxy
 Requires: libmbim-utils
@@ -35,10 +44,13 @@ BuildRequires: glib2-devel >= 2.56
 BuildRequires: gobject-introspection-devel >= 1.38
 BuildRequires: gtk-doc
 BuildRequires: libgudev1-devel >= 232
-BuildRequires: libmbim-devel >= 1.26.0
-BuildRequires: libqmi-devel >= 1.30.0
-#BuildRequires: libqrtr-glib-devel >= 1.0.0
+BuildRequires: libmbim-devel >= 1.28.0
+BuildRequires: libqmi-devel >= 1.32.0
+%if %{with qrtr}
+BuildRequires: libqrtr-glib-devel >= 1.0.0
+%endif
 BuildRequires: make
+BuildRequires: systemd
 BuildRequires: systemd-devel >= 209
 BuildRequires: vala
 BuildRequires: polkit-devel
@@ -106,6 +118,11 @@ autoreconf -vif
 %ifarch aarch64
 	--enable-plugin-qcom-soc \
 %endif
+%if %{with qrtr}
+	--with-qrtr \
+%else
+	--without-qrtr \
+%endif
 	--disable-static \
 	--with-polkit=permissive \
 	--with-dist-version=%{version}-%{release}
@@ -176,6 +193,9 @@ find %{buildroot} -type f -name "*.la" -delete
 %{_datadir}/vala/vapi/libmm-glib.*
 
 %changelog
+* Tue Nov 22 2022 Lubomir Rintel <lkundrak@v3.sk> - 1.20.2-1
+- Update to 1.20.2
+
 * Tue Oct 1 2021 Ana Cabral <acabral@redhat.com> - 1.18.2-1
 - Upgrade to 1.18.2 release