diff --git a/src/libventi/client.c b/src/libventi/client.c
index b06e0fb..ddee7cc 100644
--- a/src/libventi/client.c
+++ b/src/libventi/client.c
@@ -135,9 +135,12 @@
 vtwrite(VtConn *z, uchar score[VtScoreSize], uint type, uchar *buf, int n)
 {
 	Packet *p;
+	int nn;
 
 	p = packetforeign(buf, n, 0, nil);
-	return vtwritepacket(z, score, type, p);
+	nn = vtwritepacket(z, score, type, p);
+	packetfree(p);
+	return nn;
 }
 
 int
diff --git a/src/libventi/parsescore.c b/src/libventi/parsescore.c
index 2c38808..bf4a612 100644
--- a/src/libventi/parsescore.c
+++ b/src/libventi/parsescore.c
@@ -33,8 +33,11 @@
 	}
 	if(colon){
 		*colon = 0;
-		*prefix = s;
-	}else
-		*prefix = nil;
+		if(prefix)
+			*prefix = s;
+	}else{
+		if(prefix)
+			*prefix = nil;
+	}
 	return 0;
 }
diff --git a/src/libventi/send.c b/src/libventi/send.c
index 3e5f20e..bcd7850 100644
--- a/src/libventi/send.c
+++ b/src/libventi/send.c
@@ -73,10 +73,10 @@
 	/* get enough for head size */
 	size = packetsize(p);
 	while(size < 2) {
-		b = packettrailer(p, MaxFragSize);
+		b = packettrailer(p, 2);
 		assert(b != nil);
 		if(0) fprint(2, "%d read hdr\n", getpid());
-		n = read(z->infd, b, MaxFragSize);
+		n = read(z->infd, b, 2);
 		if(0) fprint(2, "%d got %d (%r)\n", getpid(), n);
 		if(n==0 || (n<0 && !interrupted()))
 			goto Err;
@@ -90,8 +90,8 @@
 	size -= 2;
 
 	while(size < len) {
-	//	n = len - size;
-	//	if(n > MaxFragSize)
+		n = len - size;
+		if(n > MaxFragSize)
 			n = MaxFragSize;
 		b = packettrailer(p, n);
 		if(0) fprint(2, "%d read body %d\n", getpid(), n);
diff --git a/src/libventi/srvhello.c b/src/libventi/srvhello.c
index 029f57b..0af5a32 100644
--- a/src/libventi/srvhello.c
+++ b/src/libventi/srvhello.c
@@ -8,10 +8,8 @@
 	VtFcall tx, rx;
 	Packet *p;
 
-	if((p = vtrecv(z)) == nil){
-		werrstr("unexpected eof on venti connection");
+	if((p = vtrecv(z)) == nil)
 		return -1;
-	}
 
 	if(vtfcallunpack(&tx, p) < 0){
 		packetfree(p);
diff --git a/src/libventi/version.c b/src/libventi/version.c
index dbbc4dc..c985910 100644
--- a/src/libventi/version.c
+++ b/src/libventi/version.c
@@ -101,6 +101,7 @@
 	return 0;
 
 Err:
+	werrstr("vtversion: %r");
 	if(z->infd >= 0)
 		close(z->infd);
 	if(z->outfd >= 0 && z->outfd != z->infd)
