diff -ur pm-utils-1.4.1.orig//pm/defaults pm-utils-1.4.1/pm/defaults
--- pm-utils-1.4.1.orig//pm/defaults	2012-04-01 04:03:14.933457029 +0400
+++ pm-utils-1.4.1/pm/defaults	2012-04-01 04:04:27.566396874 +0400
@@ -50,3 +50,6 @@
 # If you need to synchronize the system clock across a suspend/resume or
 # hibernate/thaw cycle, set this variable.
 # NEED_CLOCK_SYNC="true"
+
+# Command to execute when pm-utils fails to suspend/hibernate.
+# ON_FAILURE=""
diff -ur pm-utils-1.4.1.orig//pm/pm-functions.in pm-utils-1.4.1/pm/pm-functions.in
--- pm-utils-1.4.1.orig//pm/pm-functions.in	2012-04-01 04:03:14.933457029 +0400
+++ pm-utils-1.4.1/pm/pm-functions.in	2012-04-01 04:06:28.965739197 +0400
@@ -248,7 +249,12 @@
 	done
 	IFS="${oifs}"
 	# return value is 1 if something was inhibited, 0 otherwise.
-	inhibited && return 1 || return 0
+	if inhibited; then
+		[ "$2" = "suspend suspend" ] && [ -n "$ON_FAILURE" ] && eval $ON_FAILURE
+		return 1
+	else
+		return 0
+	fi
 }
 
 if profiling; then
