hold mode in raw mode
diff --git a/src/cmd/9term/9term.c b/src/cmd/9term/9term.c
index 78d52ab..b6658b2 100644
--- a/src/cmd/9term/9term.c
+++ b/src/cmd/9term/9term.c
@@ -939,7 +939,7 @@
 		return;
 	}
 	
-	if(rawon() && t.q0 == t.nr){
+	if(!holdon && rawon() && t.q0 == t.nr){
 		addraw(&r, 1);
 		consread();
 		return;
@@ -1026,7 +1026,7 @@
 		return 0;
 
 	if(rawon()) 
-		return t.nraw != 0;
+		return t.nraw != 0 || t.qh < t.nr;
 
 	/* look to see if there is a complete line */
 	for(i=t.qh; i<t.nr; i++){
@@ -1372,7 +1372,7 @@
 {
 	Rune *rbuf;
 
-	if(rawon() && t.q0==t.nr){
+	if(!holdon && rawon() && t.q0==t.nr){
 		addraw(r, n);
 		consread();
 		return;