diff --git a/check_svcs b/check_svcs
index 74a48ce38f57d5d9fc248a05a4ea2d65d1b80dc1..634fdc42adb2f66bc78e5c145526117886d38936 100755
--- a/check_svcs
+++ b/check_svcs
@@ -46,18 +46,13 @@ fi
 
 RC=0
 
-nawk '($1 ~ /svc:*/) { print $1 }' <$TMP | while read svc; do
-	RC=1
-	SL="${SL} ${svc}"
-done
-
-case "$RC" in
-	0)
-		echo "OK - All services running"
-		exit 0
-		;;
-	1)
-		echo "WARNING - Services not running:${SL}"
-		exit 1
-		;;
-esac
+nawk '\
+    BEGIN { sev=0; services="" } \
+    ($1 ~ /^svc:*/) { service=$1 } \
+    ($1 == "State:") { if ($2 == "maintenance") { sev=2 } else if (sev < 2) { sev=1 }; services=services" "service } \
+    END { if (sev == 0) { print "OK - All enabled services running" } \
+    	  else if (sev == 1) { print "WARNING - Problem services:"services } \
+    	  else { print "CRITICAL - Problem services:"services }; \
+    	  exit sev }' <$TMP
+
+exit $?