diff --git a/src/libventi/cache.c b/src/libventi/cache.c
index 71bdb62..8dcb52f 100644
--- a/src/libventi/cache.c
+++ b/src/libventi/cache.c
@@ -12,7 +12,9 @@
 #include <libc.h>
 #include <venti.h>
 
-int nread, ncopy, nwrite;
+int vtcachenread;
+int vtcachencopy;
+int vtcachenwrite;
 
 enum {
 	BioLocal = 1,
@@ -419,6 +421,7 @@
 	b->nlock = 1;
 	qunlock(&c->lk);
 
+	vtcachenread++;
 	n = vtread(c->z, score, type, b->data, c->blocksize);
 	if(n < 0){
 		werrstr("vtread %V: %r", score);
@@ -512,6 +515,7 @@
 
 	c = b->c;
 	n = vtzerotruncate(b->type, b->data, c->blocksize);
+	vtcachenwrite++;
 	if(c->write(c->z, score, b->type, b->data, n) < 0)
 		return -1;
 
@@ -540,7 +544,7 @@
 {
 	VtBlock *bb;
 
-ncopy++;
+	vtcachencopy++;
 	bb = vtcacheallocblock(b->c, b->type);
 	if(bb == nil){
 		vtblockput(b);
diff --git a/src/libventi/client.c b/src/libventi/client.c
index bb102c9..3396386 100644
--- a/src/libventi/client.c
+++ b/src/libventi/client.c
@@ -9,12 +9,10 @@
 {
 	Packet *p;
 
-	if(chattyventi)
-		fprint(2, "%s -> %F\n", argv0, ou);
 	p = vtfcallpack(ou);
 	if(p == nil)
 		return -1;
-	if((p = vtrpc(z, p)) == nil)
+	if((p = _vtrpc(z, p, ou)) == nil)
 		return -1;
 	if(vtfcallunpack(in, p) < 0){
 		packetfree(p);
diff --git a/src/libventi/rpc.c b/src/libventi/rpc.c
index 0cd9410..faf8062 100644
--- a/src/libventi/rpc.c
+++ b/src/libventi/rpc.c
@@ -29,10 +29,9 @@
 static int gettag(VtConn*, Rwait*);
 static void puttag(VtConn*, Rwait*, int);
 static void muxrpc(VtConn*, Packet*);
-Packet *vtrpc(VtConn*, Packet*);
 
 Packet*
-vtrpc(VtConn *z, Packet *p)
+_vtrpc(VtConn *z, Packet *p, VtFcall *tx)
 {
 	int i;
 	uchar tag, buf[2], *top;
@@ -44,6 +43,12 @@
 	qlock(&z->lk);
 	r->r.l = &z->lk;
 	tag = gettag(z, r);
+	if(tx){
+		/* vtfcallrpc can't print packet because it doesn't have tag */
+		tx->tag = tag;
+		if(chattyventi)
+			fprint(2, "%s -> %F\n", argv0, tx);
+	}
 
 	/* slam tag into packet */
 	top = packetpeek(p, buf, 0, 2);
@@ -104,6 +109,12 @@
 	return p;
 }
 
+Packet*
+vtrpc(VtConn *z, Packet *p)
+{
+	return _vtrpc(z, p, nil);
+}
+
 static int 
 gettag(VtConn *z, Rwait *r)
 {
