diff --git a/include/qapi/error.h b/include/qapi/error.h
index 7d4c696..d3ef7f4 100644
--- a/include/qapi/error.h
+++ b/include/qapi/error.h
@@ -95,4 +95,9 @@
  */
 void error_free(Error *err);
 
+/**
+ * If passed to error_set and friends, abort().
+ */
+
+extern Error *error_abort;
 #endif
diff --git a/util/error.c b/util/error.c
index 3ee362a..a059cfe 100644
--- a/util/error.c
+++ b/util/error.c
@@ -23,6 +23,7 @@
     ErrorClass err_class;
 };
 
+Error *error_abort;
 void error_set(Error **errp, ErrorClass err_class, const char *fmt, ...)
 {
     Error *err;
@@ -40,6 +41,10 @@
     err->msg = g_strdup_vprintf(fmt, ap);
     va_end(ap);
     err->err_class = err_class;
+    if (errp == &error_abort) {
+        error_report("%s", error_get_pretty(err));
+        abort();
+    }
 
     *errp = err;
 
@@ -71,6 +76,10 @@
     }
     va_end(ap);
     err->err_class = err_class;
+    if (errp == &error_abort) {
+        error_report("%s", error_get_pretty(err));
+        abort();
+    }
 
     *errp = err;
 
@@ -111,6 +120,10 @@
     }
     va_end(ap);
     err->err_class = err_class;
+    if (errp == &error_abort) {
+        error_report("%s", error_get_pretty(err));
+        abort();
+    }
 
     *errp = err;
 }
@@ -153,7 +166,10 @@
 
 void error_propagate(Error **dst_err, Error *local_err)
 {
-    if (dst_err && !*dst_err) {
+    if (local_err && dst_err == &error_abort) {
+        error_report("%s", error_get_pretty(local_err));
+        abort();
+    } else if (dst_err && !*dst_err) {
         *dst_err = local_err;
     } else if (local_err) {
         error_free(local_err);
