diff --git a/component/egg-patch/ZEO4/TCP_NODELAY.patch b/component/egg-patch/ZEO4/TCP_NODELAY.patch
new file mode 100644
index 0000000000000000000000000000000000000000..31505347553822ac49e68fa683c72404f5973b8d
--- /dev/null
+++ b/component/egg-patch/ZEO4/TCP_NODELAY.patch
@@ -0,0 +1,39 @@
+From 8b31ccec54584a287cc61501948283d7d6ee7073 Mon Sep 17 00:00:00 2001
+From: Julien Muchembled <jm@nexedi.com>
+Date: Mon, 26 Mar 2018 20:39:07 +0200
+Subject: [PATCH] Enable TCP_NODELAY for inet(6) sockets
+
+See commit 3d886d426243655b9f5a2528636e42b5c7662c19.
+---
+ src/ZEO/zrpc/client.py | 2 ++
+ src/ZEO/zrpc/server.py | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/src/ZEO/zrpc/client.py b/src/ZEO/zrpc/client.py
+index 32a7a877..669f5962 100644
+--- a/src/ZEO/zrpc/client.py
++++ b/src/ZEO/zrpc/client.py
+@@ -568,6 +568,8 @@ def __init__(self, domain, addr, mgr, client):
+             self.close()
+             return
+         self.sock.setblocking(0)
++        if domain in (socket.AF_INET, socket.AF_INET6):
++            self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
+         self.state = "opened"
+ 
+     def connect_procedure(self):
+diff --git a/src/ZEO/zrpc/server.py b/src/ZEO/zrpc/server.py
+index b83cc004..af91e3e4 100644
+--- a/src/ZEO/zrpc/server.py
++++ b/src/ZEO/zrpc/server.py
+@@ -66,6 +66,7 @@ def _open_socket(self):
+                         socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, True)
+             else:
+                 self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
++            self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
+         else:
+             self.create_socket(socket.AF_UNIX, socket.SOCK_STREAM)
+         self.set_reuse_addr()
+-- 
+2.14.1
+
diff --git a/software/neoppod/software-common.cfg b/software/neoppod/software-common.cfg
index dad2905c7cf229b51d66f8fc7f8444a600726ed3..85725aee18bbccc5d90e17c0dcf0adcfaab5836f 100644
--- a/software/neoppod/software-common.cfg
+++ b/software/neoppod/software-common.cfg
@@ -48,6 +48,11 @@ eggs = neoppod[admin, ctl, master, storage-mysqldb]
   ZODB
   zope.testing
   zodbtools
+patch-binary = ${patch:location}/bin/patch
+ZEO-patch-options = -p1
+ZEO-patches =
+  ${:_profile_base_location_}/../../component/egg-patch/ZEO4/TCP_NODELAY.patch#b07288522d5c6857738240d948321df6
+
 
 [slapos-deps-eggs]
 recipe = zc.recipe.egg
@@ -161,7 +166,7 @@ zodburi = 2.3.0
 # Required by:
 # zodburi==2.0
 # ZEO 5 requires transaction >= 2
-ZEO = 4.3.1
+ZEO = 4.3.1+SlapOSPatched001
 
 # Required by:
 # zodburi==2.0
diff --git a/software/neoppod/software-zodb5.cfg b/software/neoppod/software-zodb5.cfg
index 290ce57b9ecfcda2c89b6a6dfeb91c9e6cb59f4c..b625d1fe56f64f175949ca53efa96a9059c008e6 100644
--- a/software/neoppod/software-zodb5.cfg
+++ b/software/neoppod/software-zodb5.cfg
@@ -1,6 +1,9 @@
 [buildout]
 extends = software.cfg
 
+[neoppod]
+ZEO-patches =
+
 [versions]
 ZODB = 5.3.0
 ZEO = 5.1.0