linux diffs.
diff --git a/include/mux.h b/include/mux.h
index c43ce79..b8d242c 100644
--- a/include/mux.h
+++ b/include/mux.h
@@ -22,7 +22,7 @@
 	void *aux;	/* for private use by client */
 
 /* private */
-	QLock lk;
+	QLock lk;	/* must be first for muxinit */
 	QLock inlk;
 	QLock outlk;
 	Rendez tagrend;
diff --git a/src/libmux/mux.c b/src/libmux/mux.c
index bc63260..2d5074e 100644
--- a/src/libmux/mux.c
+++ b/src/libmux/mux.c
@@ -19,7 +19,9 @@
 void
 muxinit(Mux *mux)
 {
+	memset(&mux->lk, 0, sizeof(Mux)-offsetof(Mux, lk));
 	mux->tagrend.l = &mux->lk;
+	mux->rpcfork.l = &mux->lk;
 	mux->sleep.next = &mux->sleep;
 	mux->sleep.prev = &mux->sleep;
 }