diff --git a/check_lysrdiff b/check_lysrdiff
index b40c5439b3e69e00da75e272e0eaab362a69abeb..ab88e2416c2e56c5ae473a41239270b506651441 100755
--- a/check_lysrdiff
+++ b/check_lysrdiff
@@ -87,6 +87,8 @@ echo $acttime MARKER \
 | sed -e '0,/MARKER$/d' \
 > $state-active
 
+trap "rm $state $state-stale $state-active" 0
+
 FAILED=`grep -c -- '--fail$' $state`
 STALE=`wc -l < $state-stale`
 ACTIVITY=`wc -l < $state-active`
@@ -108,7 +110,6 @@ then
 	  END { if (sz >= 200) printf ", others" } ' \
     |sed s'/, \([^,]*\)$/ and \1/'
   echo ". | $PERF"
-  rm $state $state-stale $state-active
   exit 2
 fi
 
@@ -126,7 +127,6 @@ then
 	  END { if (sz >= 200) printf ", others" } ' \
     |sed s'/, \([^,]*\)$/ and \1/'
   echo ". | $PERF"
-  rm $state $state-stale $state-active
   exit 2
 fi
 
@@ -145,8 +145,6 @@ then
 	  END { if (sz >= 200) printf ", others" } ' \
     |sed s'/, \([^,]*\)$/ and \1/'
   echo ". | $PERF"
-  rm $state $state-stale $state-active
-
   exit 1
 fi
 
@@ -160,17 +158,14 @@ then
 	  END { if (sz >= 200) printf ", others" } ' \
     |sed s'/, \([^,]*\)$/ and \1/'
   echo ". | $PERF"
-  rm $state $state-stale $state-active
   exit 1
 fi
 
 if [ $ACTIVITY = 0 ]
 then
   echo "WARNING - No activity. | $PERF"
-  rm $state $state-stale $state-active
   exit 1
 fi
 
 echo "OK - all ok. | $PERF"
-rm $state $state-stale $state-active
 exit 0