diff --git a/lib/common.sh b/lib/common.sh
index b885080e994a0a19a9c1a4ede5899af7060409a4..104850b312cacf2af42bdfa0a1fc9eb73004099b 100644
--- a/lib/common.sh
+++ b/lib/common.sh
@@ -79,8 +79,9 @@ trap_abort() {
 }
 
 trap_exit() {
+	local r=$?
 	trap - EXIT INT QUIT TERM HUP
-	cleanup
+	cleanup $r
 }
 
 die() {