diff --git a/config.def.h b/config.def.h
index 6fba2b6..933152b 100644
--- a/config.def.h
+++ b/config.def.h
@@ -10,3 +10,6 @@ static const char *colorname[NUMCOLS] = {
 /* time in seconds before the monitor shuts down */
 static const int monitortime = 5;
+
+/* allow control key to trigger fail on clear */
+static const int controlkeyclear = 0;

diff --git a/slock.c b/slock.c
index 4d7f06f..15552ef 100644
--- a/slock.c
+++ b/slock.c
@@ -180,8 +180,9 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
 					passwd[len--] = '\0';
 				break;
 			default:
-				if (num && !iscntrl((int)buf[0]) &&
-				    (len + num < sizeof(passwd))) {
+				if (controlkeyclear && iscntrl((int)buf[0]))
+					continue;
+				if (num && (len + num < sizeof(passwd))) {
 					memcpy(passwd + len, buf, num);
 					len += num;
 				}
