diff --git a/tools/install.sh b/tools/install.sh
index 5633320a85e23fa1004133f9ecdf08ddcea4a82b..67d341c7c23ca592ebf1195e50f7e7c53b57a566 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -1,5 +1,3 @@
-set -e
-
 # Use colors, but only if connected to a terminal, and that terminal
 # supports them.
 tput=$(which tput)
@@ -21,6 +19,11 @@ else
   BOLD=""
   NORMAL=""
 fi
+
+# Only enable exit-on-error after the non-critical colorization stuff,
+# which may fail on systems lacking tput or terminfo
+set -e
+
 CHECK_ZSH_INSTALLED=$(grep /zsh$ /etc/shells | wc -l)
 if [ ! $CHECK_ZSH_INSTALLED -ge 1 ]; then
   printf "${YELLOW}Zsh is not installed!${NORMAL} Please install zsh first!\n"