diff --git a/SOURCES/bz1951049-1-knet-pass-correct-handle-to-knet_handle_compress.patch b/SOURCES/bz1951049-1-knet-pass-correct-handle-to-knet_handle_compress.patch
new file mode 100644
index 0000000..c8bd7f0
--- /dev/null
+++ b/SOURCES/bz1951049-1-knet-pass-correct-handle-to-knet_handle_compress.patch
@@ -0,0 +1,60 @@
+commit aa326fb8f87fa0e2db6901db2ccb93cd582dd44f
+Author: Fabio M. Di Nitto <fdinitto@redhat.com>
+Date:   Tue Apr 6 13:06:05 2021 +0200
+
+    knet: pass correct handle to knet_handle_compress
+    
+    totemknet_configure_compression was using knet_context
+    just to gather the knet handle / instance.
+    
+    On first time config knet_contex is not initialized till
+    much later in the code, passing some random garbage pointers
+    to knet_handle_compress, that would crash later trying
+    to acquire a mutex lock.
+    
+    Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+    Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+diff --git a/exec/totemknet.c b/exec/totemknet.c
+index 0834e8e..e895256 100644
+--- a/exec/totemknet.c
++++ b/exec/totemknet.c
+@@ -197,7 +197,7 @@ int totemknet_member_list_rebind_ip (
+ 
+ 
+ static int totemknet_configure_compression (
+-	void *knet_context,
++	struct totemknet_instance *instance,
+ 	struct totem_config *totem_config);
+ 
+ static void totemknet_start_merge_detect_timeout(
+@@ -1154,7 +1154,7 @@ int totemknet_initialize (
+ 	/* Set up compression */
+ 	if (strcmp(totem_config->knet_compression_model, "none") != 0) {
+ 		/* Not fatal, but will log */
+-		(void)totemknet_configure_compression(knet_context, totem_config);
++		(void)totemknet_configure_compression(instance, totem_config);
+ 	}
+ 
+ 	knet_handle_setfwd(instance->knet_handle, 1);
+@@ -1557,10 +1557,9 @@ int totemknet_member_list_rebind_ip (
+ 
+ 
+ static int totemknet_configure_compression (
+-	void *knet_context,
++	struct totemknet_instance *instance,
+ 	struct totem_config *totem_config)
+ {
+-	struct totemknet_instance *instance = (struct totemknet_instance *)knet_context;
+ 	struct knet_handle_compress_cfg compress_cfg;
+ 	int res = 0;
+ 
+@@ -1584,7 +1583,7 @@ int totemknet_reconfigure (
+ 	struct totemknet_instance *instance = (struct totemknet_instance *)knet_context;
+ 	int res = 0;
+ 
+-	(void)totemknet_configure_compression(knet_context, totem_config);
++	(void)totemknet_configure_compression(instance, totem_config);
+ 
+ #ifdef HAVE_LIBNOZZLE
+ 	/* Set up nozzle device(s). Return code is ignored, because inability
diff --git a/SPECS/corosync.spec b/SPECS/corosync.spec
index 46115ea..06d8245 100644
--- a/SPECS/corosync.spec
+++ b/SPECS/corosync.spec
@@ -23,12 +23,13 @@
 Name: corosync
 Summary: The Corosync Cluster Engine and Application Programming Interfaces
 Version: 3.1.0
-Release: 3%{?gitver}%{?dist}
+Release: 3%{?gitver}%{?dist}.1
 License: BSD
 URL: http://corosync.github.io/corosync/
 Source0: http://build.clusterlabs.org/corosync/releases/%{name}-%{version}%{?gittarver}.tar.gz
 
 Patch0: bz1896493-1-totemknet-Check-both-cipher-and-hash-for-crypto.patch
+Patch1: bz1951049-1-knet-pass-correct-handle-to-knet_handle_compress.patch
 
 %if %{with spausedd}
 Source1: https://github.com/jfriesse/spausedd/releases/download/%{spausedd_version}/spausedd-%{spausedd_version}.tar.gz
@@ -94,6 +95,7 @@ BuildRequires: pkgconfig(vmguestlib)
 %endif
 
 %patch0 -p1 -b .bz1896493-1
+%patch1 -p1 -b .bz1951049-1
 
 %build
 %if %{with runautogen}
@@ -393,6 +395,11 @@ fi
 %endif
 
 %changelog
+* Mon Apr 19 2021 Jan Friesse <jfriesse@redhat.com> 3.1.0-3.1
+- Resolves: rhbz#1951049
+
+- knet: pass correct handle to knet_handle_compress (rhbz#1951049)
+
 * Thu Nov 12 2020 Jan Friesse <jfriesse@redhat.com> 3.1.0-3
 - Resolves: rhbz#1897085
 - Resolves: rhbz#1896493