Index: new/savevm-async.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ new/savevm-async.c 2014-08-07 13:29:41.000000000 +0200
-@@ -0,0 +1,488 @@
++++ new/savevm-async.c 2014-11-20 09:17:48.000000000 +0100
+@@ -0,0 +1,501 @@
+#include "qemu-common.h"
+#include "qapi/qmp/qerror.h"
+#include "sysemu/sysemu.h"
+ SAVE_STATE_ERROR,
+ SAVE_STATE_ACTIVE,
+ SAVE_STATE_COMPLETED,
++ SAVE_STATE_CANCELLED
+};
+
+
+ }
+ }
+ }
++
++ if(snap_state.state == SAVE_STATE_CANCELLED) {
++ save_snapshot_completed();
++ Error *errp = NULL;
++ qmp_savevm_end(&errp);
++ }
++
+}
+
+static const QEMUFileOps block_file_ops = {
+ return;
+ }
+
++ if (snap_state.state == SAVE_STATE_ACTIVE) {
++ snap_state.state = SAVE_STATE_CANCELLED;
++ return;
++ }
++
+ if (snap_state.saved_vm_running) {
+ vm_start();
+ }