diff --git a/console-tools/chvt.c b/console-tools/chvt.c
index d4b16a0..7909645 100644
--- a/console-tools/chvt.c
+++ b/console-tools/chvt.c
@@ -25,13 +25,13 @@
 	num = atoi(argv[1]);
 	if (ioctl(fd, VT_ACTIVATE, num)) {
 		perror("VT_ACTIVATE");
-		exit(FALSE);
+		return EXIT_FAILURE;
 	}
 	if (ioctl(fd, VT_WAITACTIVE, num)) {
 		perror("VT_WAITACTIVE");
-		exit(FALSE);
+		return EXIT_FAILURE;
 	}
-	return(TRUE);
+	return EXIT_SUCCESS;
 }
 
 
diff --git a/console-tools/clear.c b/console-tools/clear.c
index 4a8e045..ca83f38 100644
--- a/console-tools/clear.c
+++ b/console-tools/clear.c
@@ -29,5 +29,5 @@
 extern int clear_main(int argc, char **argv)
 {
 	printf("\033[H\033[J");
-	return(TRUE);
+	return EXIT_SUCCESS;
 }
diff --git a/console-tools/deallocvt.c b/console-tools/deallocvt.c
index 65af79b..4600c0d 100644
--- a/console-tools/deallocvt.c
+++ b/console-tools/deallocvt.c
@@ -28,7 +28,7 @@
 		/* deallocate all unused consoles */
 		if (ioctl(fd, VT_DISALLOCATE, 0)) {
 			perror("VT_DISALLOCATE");
-			exit( FALSE);
+			return EXIT_FAILURE;
 		}
 	} else
 printf("erik: B\n");
@@ -44,5 +44,5 @@
 			}
 		}
 printf("erik: C\n");
-	return( TRUE);
+	return EXIT_SUCCESS;
 }
diff --git a/console-tools/dumpkmap.c b/console-tools/dumpkmap.c
index 2d989df..77689fc 100644
--- a/console-tools/dumpkmap.c
+++ b/console-tools/dumpkmap.c
@@ -51,7 +51,7 @@
 	fd = open("/dev/tty0", O_RDWR);
 	if (fd < 0) {
 		errorMsg("Error opening /dev/tty0: %s\n", strerror(errno));
-		return 1;
+		return EXIT_FAILURE;
 	}
 
 	write(1, magic, 7);
@@ -88,5 +88,5 @@
 		}
 	}
 	close(fd);
-	return 0;
+	return EXIT_SUCCESS;
 }
diff --git a/console-tools/loadacm.c b/console-tools/loadacm.c
index f577379..1562108 100644
--- a/console-tools/loadacm.c
+++ b/console-tools/loadacm.c
@@ -40,17 +40,17 @@
 	fd = open("/dev/tty", O_RDWR);
 	if (fd < 0) {
 		errorMsg("Error opening /dev/tty1: %s\n", strerror(errno));
-		return( FALSE);
+		return EXIT_FAILURE;
 	}
 
 	if (screen_map_load(fd, stdin)) {
 		errorMsg("Error loading acm: %s\n", strerror(errno));
-		return( FALSE);
+		return EXIT_FAILURE;
 	}
 
 	write(fd, "\033(K", 3);
 
-	return( TRUE);
+	return EXIT_SUCCESS;
 }
 
 int screen_map_load(int fd, FILE * fp)
diff --git a/console-tools/reset.c b/console-tools/reset.c
index 8e2c491..bf8c3ed 100644
--- a/console-tools/reset.c
+++ b/console-tools/reset.c
@@ -29,6 +29,6 @@
 extern int reset_main(int argc, char **argv)
 {
        printf("\033c");
-       return(TRUE);
+       return EXIT_SUCCESS;
 }
 
diff --git a/console-tools/setkeycodes.c b/console-tools/setkeycodes.c
index 63c1063..6a31e04 100644
--- a/console-tools/setkeycodes.c
+++ b/console-tools/setkeycodes.c
@@ -68,5 +68,5 @@
 	argc -= 2;
 	argv += 2;
     }
-    return( TRUE);
+	return EXIT_SUCCESS;
 }
