diff --git a/src/chat/encryption/lime-x3dh-server-engine.cpp b/src/chat/encryption/lime-x3dh-server-engine.cpp
index 0e50f67e5837e40d4d40ddc185da3559927f7a71..50ae7faeb4b90282033766f262586885efd3a86e 100644
--- a/src/chat/encryption/lime-x3dh-server-engine.cpp
+++ b/src/chat/encryption/lime-x3dh-server-engine.cpp
@@ -99,6 +99,11 @@ LimeX3dhEncryptionServerEngine::processOutgoingMessage(const std::shared_ptr<Cha
 	finalContent.setContentType(internalContent->getContentType());
 	finalContent.getContentType().removeParameter("boundary");
 	finalContent.getContentType().addParameter("boundary", boundary);
+	if (linphone_core_content_encoding_supported(L_GET_C_BACK_PTR(chatRoom->getCore()), "deflate")) {
+		finalContent.setContentEncoding("deflate");
+	} else {
+		lWarning() << "Cannot use 'deflate' Content-Encoding to compress body - consider rebuilding with libz support.";
+	}
 	message->setInternalContent(finalContent);
 	return ChatMessageModifier::Result::Done;
 }