locking fixes
diff --git a/src/cmd/faces/main.c b/src/cmd/faces/main.c
index c1fbecf..2563a24 100644
--- a/src/cmd/faces/main.c
+++ b/src/cmd/faces/main.c
@@ -330,7 +330,6 @@
 
 	if(f == nil)
 		return;
-	lockdisplay(display);
 	if(first != 0){
 		first = 0;
 		eresized(0);
@@ -340,6 +339,7 @@
 	nx = nacross;
 	ny = (nfaces+(nx-1)) / nx;
 
+	lockdisplay(display);
 	for(y=ny; y>=0; y--){
 		/* move them along */
 		r0 = facerect(y*nx+0);
@@ -613,8 +613,11 @@
 			for(i=first; i<last; i++)	/* clear vwhois faces */
 				if(ptinrect(p, facerect(i-first)) 
 				&& strstr(faces[i]->str[Sshow], "/XXXvwhois")){
+					lockdisplay(display);
 					delface(i);
 					flushimage(display, 1);
+					unlockdisplay(display);
+					break;
 				}
 		}
 		break;