diff --git a/compctld.c b/compctld.c
index 690170c85b39a03da07e56329395683876f499f5..f88132e419ea225562e8571339515fff62e7bdb3 100644
--- a/compctld.c
+++ b/compctld.c
@@ -247,20 +247,12 @@ sockerror:
 			size_t minuser, mincomp, maxcomp, total;
 			memory_limits(&minuser, &mincomp, &maxcomp, &total);
 
-			/* Sanity check. */
-			if (limit < 1024 || limit > total) {
-				syslog(LOG_WARNING, "limitmem: invalid limit (%zu)", limit);
-				mprintf(fd, "0 invalid limit value");
-				close(fd);
-				continue;
-			}
-
 			if (limit < mincomp) {
 				mprintf(fd, "-1 at least %zuM must remain available for computations.", mincomp / 1048576);
 				close(fd);
 				continue;
 			}
-			if (total - limit < minuser) {
+			if (limit > total || total - limit < minuser) {
 				mprintf(fd, "-2 at least %zuM must remain available for users.", minuser / 1048576);
 				close(fd);
 				continue;