diff --git a/ShellB3/shallbethree.sh b/ShellB3/shallbethree.sh
index 98539eca317b24ce88f17471083a3989f805d47f..c08971398c2984f6e1fa8338c93ef79492ecb620 100755
--- a/ShellB3/shallbethree.sh
+++ b/ShellB3/shallbethree.sh
@@ -3587,9 +3587,31 @@ EOF
 mk_zeromq() {
   resume_tracker && return 0
   # _find_cots UUID include/uuid/uuid.h ${SYSROOT}/usr || oops "uuid.h is needed for libzeromq, may be part of e2fsprogs-devel"
-  echo unpacking zeromq...
-  tar xf src/optional/zeromq-${ZEROMQVER}.tar.* -C build || oops "could not unpack zeromq from src/optional/zeromq-${ZEROMQVER}.tar.*"
-  (cd build/zeromq-${ZEROMQVER}; patch -p0 -l) <<SOSAYWEALL  || oops "Failed to patch zeromq"
+  make_patch zeromq <<PATCH
+--- src/curve_server.cpp        2015-06-15 04:43:08.000000000 -0500
++++ src/curve_server.cpp     2015-11-14 15:19:36.702313310 -0600
+@@ -61,7 +61,8 @@
+     randombytes(tmpbytes, 4);
+ #else
+     // todo check return code
+-    sodium_init();
++    int sir = sodium_init();
++    zmq_assert (sir == 0);
+ #endif
+ 
+     //  Generate short-term key pair
+--- src/curve_client.cpp        2015-06-15 04:43:08.000000000 -0500
++++ src/curve_client.cpp     2015-11-14 15:13:39.977325276 -0600
+@@ -58,7 +58,8 @@
+     randombytes(tmpbytes, 4);
+ #else
+     // todo check return code
+-    sodium_init();
++    int sir = sodium_init();
++    zmq_assert ( sir == 0 );
+ #endif
+ 
+     //  Generate short-term key pair
 --- tests/test_disconnect_inproc.cpp 2013-11-14 14:58:27.000000000 -0600
 +++ tests/test_disconnect_inproc.cpp 2013-11-14 15:04:43.000000000 -0600
 @@ -3,6 +3,11 @@
@@ -3604,16 +3626,18 @@ mk_zeromq() {
  /// Initialize a zeromq message with a given null-terminated string
  #define ZMQ_PREPARE_STRING(msg, data, size) \
  zmq_msg_init(&msg) && printf("zmq_msg_init: %s\n", zmq_strerror(errno)); 
-SOSAYWEALL
-  echo >> build/zeromq-${ZEROMQVER}/tests/test_connect_delay.cpp
-  echo "building zeromq for $BASE"
-  (cd build/zeromq-${ZEROMQVER} \
-   && (test -f configure || ./autogen.sh) \
-   && ./configure --prefix=$BASE ${SB3BUILDFLAGS} "$@"\
-   && make \
-   && MAKEFLAGS="" make install ) \
-   || oops "zeromq build failed"
-  #_configure_make_install zeromq src/optional/zeromq-${ZEROMQVER}.tar.* zeromq-${ZEROMQVER} 
+PATCH
+  make_script zeromq <<SCRIPT
+echo >> tests/test_connect_delay.cpp
+SCRIPT
+  #echo "building zeromq for $BASE"
+  #(cd build/zeromq-${ZEROMQVER} \
+  # && (test -f configure || ./autogen.sh) \
+  # && ./configure --prefix=$BASE ${SB3BUILDFLAGS} "$@"\
+  # && make \
+  # && MAKEFLAGS="" make install ) \
+  # || oops "zeromq build failed"
+  _configure_make_install zeromq src/optional/zeromq-${ZEROMQVER}.tar.* zeromq-${ZEROMQVER} 
   #echo /lib64/libuuid* >> requires
 }