diff --git a/SOURCES/9000-resolved-pin-stream-while-calling-callbacks-for-it.patch b/SOURCES/9000-resolved-pin-stream-while-calling-callbacks-for-it.patch
new file mode 100644
index 0000000..9b82d08
--- /dev/null
+++ b/SOURCES/9000-resolved-pin-stream-while-calling-callbacks-for-it.patch
@@ -0,0 +1,42 @@
+From a4f08c798cabd5c43f2578a9e2b048fa1ad4a52c Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart@poettering.net>
+Date: Tue, 4 Dec 2018 22:13:39 +0100
+Subject: [PATCH] resolved: pin stream while calling callbacks for it
+
+These callbacks might unref the stream, but we still have to access it,
+let's hence ref it explicitly.
+
+Maybe fixes: #10725
+
+(cherry picked from commit d973d94dec349fb676fdd844f6fe2ada3538f27c)
+
+Resolves: #2110548
+---
+ src/resolve/resolved-dns-stream.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/resolve/resolved-dns-stream.c b/src/resolve/resolved-dns-stream.c
+index 066daef96e..2d0162483a 100644
+--- a/src/resolve/resolved-dns-stream.c
++++ b/src/resolve/resolved-dns-stream.c
+@@ -42,6 +42,8 @@ static int dns_stream_update_io(DnsStream *s) {
+ }
+ 
+ static int dns_stream_complete(DnsStream *s, int error) {
++        _cleanup_(dns_stream_unrefp) _unused_ DnsStream *ref = dns_stream_ref(s); /* Protect stream while we process it */
++
+         assert(s);
+ 
+ #if ENABLE_DNS_OVER_TLS
+@@ -315,7 +317,7 @@ static int on_stream_timeout(sd_event_source *es, usec_t usec, void *userdata) {
+ }
+ 
+ static int on_stream_io(sd_event_source *es, int fd, uint32_t revents, void *userdata) {
+-        DnsStream *s = userdata;
++        _cleanup_(dns_stream_unrefp) DnsStream *s = dns_stream_ref(userdata); /* Protect stream while we process it */
+         int r;
+ 
+         assert(s);
+-- 
+2.37.1
+
diff --git a/SPECS/systemd.spec b/SPECS/systemd.spec
index efdcd97..9c08bb1 100644
--- a/SPECS/systemd.spec
+++ b/SPECS/systemd.spec
@@ -13,7 +13,7 @@
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
 Version:        239
-Release:        58%{?dist}.3
+Release:        58%{?dist}.4
 # For a breakdown of the licensing, see README
 License:        LGPLv2+ and MIT and GPLv2+
 Summary:        System and Service Manager
@@ -808,6 +808,7 @@ Patch0755: 0755-core-Delay-start-rate-limit-check-when-starting-a-un.patch
 Patch0756: 0756-core-Propagate-condition-failed-state-to-triggering-.patch
 Patch0757: 0757-unit-check-for-mount-rate-limiting-before-checking-a.patch
 
+Patch9000: 9000-resolved-pin-stream-while-calling-callbacks-for-it.patch
 
 %ifarch %{ix86} x86_64 aarch64
 %global have_gnu_efi 1
@@ -1437,6 +1438,9 @@ fi
 %files tests -f .file-list-tests
 
 %changelog
+* Wed Aug 03 2022 systemd maintenance team <systemd-maint@redhat.com> - 239-58.4
+- resolved: pin stream while calling callbacks for it (#2110548)
+
 * Thu Jun 23 2022 systemd maintenance team <systemd-maint@redhat.com> - 239-58.3
 - unit: check for mount rate limiting before checking active state (#2097336)