diff --git a/src/lib9/malloc.c b/src/lib9/malloc.c
index b75d2f0..7c5b178 100644
--- a/src/lib9/malloc.c
+++ b/src/lib9/malloc.c
@@ -2,10 +2,57 @@
 #define NOPLAN9DEFINES
 #include <libc.h>
 
+/*
+ * The Unix libc routines cannot be trusted to do their own locking.
+ * Sad but apparently true.
+ */
+
+static Lock malloclock;
+
 void*
 p9malloc(ulong n)
 {
+	void *v;
 	if(n == 0)
 		n++;
-	return malloc(n);
+//fprint(2, "%s %d malloc\n", argv0, getpid());
+	lock(&malloclock);
+	v = malloc(n);
+	unlock(&malloclock);
+//fprint(2, "%s %d donemalloc\n", argv0, getpid());
+	return v;
+}
+
+void
+p9free(void *v)
+{
+//fprint(2, "%s %d free\n", argv0, getpid());
+	lock(&malloclock);
+	free(v);
+	unlock(&malloclock);
+//fprint(2, "%s %d donefree\n", argv0, getpid());
+}
+
+void*
+p9calloc(ulong a, ulong b)
+{
+	void *v;
+
+//fprint(2, "%s %d calloc\n", argv0, getpid());
+	lock(&malloclock);
+	v = calloc(a, b);
+	unlock(&malloclock);
+//fprint(2, "%s %d donecalloc\n", argv0, getpid());
+	return v;
+}
+
+void*
+p9realloc(void *v, ulong n)
+{
+//fprint(2, "%s %d realloc\n", argv0, getpid());
+	lock(&malloclock);
+	v = realloc(v, n);
+	unlock(&malloclock);
+//fprint(2, "%s %d donerealloc\n", argv0, getpid());
+	return v;
 }
