diff --git a/src/sbbs3/inkey.cpp b/src/sbbs3/inkey.cpp
index f00168cd3cbb0c572fe55eb5c92c21ec32e67628..05e5738de70125428e533bd4735c2df14b5e873d 100644
--- a/src/sbbs3/inkey.cpp
+++ b/src/sbbs3/inkey.cpp
@@ -72,16 +72,16 @@ char sbbs_t::inkey(long mode)
 
 	timeout=time(NULL);
 
-	/* Is this control key flagged as passthru? */
-	if(ch<' ' && cfg.ctrlkey_passthru&(1<<ch))
-		return(ch);	/* do not handle here */
+	/* Is this a control key */
+	if(ch<' ') {
+		if(cfg.ctrlkey_passthru&(1<<ch))	/*  flagged as passthru? */
+			return(ch);						/* do not handle here */
+		return(handle_ctrlkey(ch,mode));
+	}
 
 	if(mode&K_UPPER)
 		ch=toupper(ch);
 
-	if(ch<' ')
-		return(handle_ctrlkey(ch,mode));
-
 	return(ch);
 }
 
@@ -318,4 +318,4 @@ char sbbs_t::handle_ctrlkey(char ch, long mode)
 			return(0); 
 	}
 	return(ch);
-}
\ No newline at end of file
+}