diff --git a/docs/qmp/qmp-events.txt b/docs/qmp/qmp-events.txt
index fb26a1a39b40cce80c2a3432fc209cfeb2e8c83c..d0b7b990ac07adc92aebe35d68d73c19c2fa08da 100644
--- a/docs/qmp/qmp-events.txt
+++ b/docs/qmp/qmp-events.txt
@@ -352,18 +352,6 @@ Example:
                       "channel-id": 0, "tls": true}
 }}
 
-SUSPEND
--------
-
-Emitted when guest enters S3 state.
-
-Data: None.
-
-Example:
-
-{ "event": "SUSPEND",
-     "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
-
 SUSPEND_DISK
 ------------
 
diff --git a/qapi-event.json b/qapi-event.json
index ac903efec2f16ca3534a2ce391f771f54342f379..d45b34182d1600093e49016c8c49a4de310a71d3 100644
--- a/qapi-event.json
+++ b/qapi-event.json
@@ -47,3 +47,13 @@
 # Since: 0.12.0
 ##
 { 'event': 'RESUME' }
+
+##
+# @SUSPEND
+#
+# Emitted when guest enters a hardware suspension state, for example, S3 state,
+# which is sometimes called standby state
+#
+# Since: 1.1
+##
+{ 'event': 'SUSPEND' }
diff --git a/vl.c b/vl.c
index fb9193986d2d3dc15ecb002fa6c674e6c0032c48..aaa9ee5139ab8e3ff854b370a161211a22d52682 100644
--- a/vl.c
+++ b/vl.c
@@ -1869,7 +1869,7 @@ static void qemu_system_suspend(void)
     pause_all_vcpus();
     notifier_list_notify(&suspend_notifiers, NULL);
     runstate_set(RUN_STATE_SUSPENDED);
-    monitor_protocol_event(QEVENT_SUSPEND, NULL);
+    qapi_event_send_suspend(&error_abort);
 }
 
 void qemu_system_suspend_request(void)