diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h
index 73fb2b9e..a8942ee2 100644
--- a/include/ModemManager-enums.h
+++ b/include/ModemManager-enums.h
@@ -92,6 +92,7 @@ typedef enum { /*< underscore_name=mm_modem_lock >*/
/**
* MMModemState:
+ * @MM_MODEM_STATE_FAILED: The modem is unusable.
* @MM_MODEM_STATE_UNKNOWN: State unknown or not reportable.
* @MM_MODEM_STATE_INITIALIZING: The modem is currently being initialized.
* @MM_MODEM_STATE_LOCKED: The modem needs to be unlocked.
@@ -108,6 +109,7 @@ typedef enum { /*< underscore_name=mm_modem_lock >*/
* Enumeration of possible modem states.
*/
typedef enum { /*< underscore_name=mm_modem_state >*/
+ MM_MODEM_STATE_FAILED = -1,
MM_MODEM_STATE_UNKNOWN = 0,
MM_MODEM_STATE_INITIALIZING = 1,
MM_MODEM_STATE_LOCKED = 2,
diff --git a/introspection/org.freedesktop.ModemManager1.Modem.xml b/introspection/org.freedesktop.ModemManager1.Modem.xml
index 7ddd6d7a..1a6b4519 100644
--- a/introspection/org.freedesktop.ModemManager1.Modem.xml
+++ b/introspection/org.freedesktop.ModemManager1.Modem.xml
@@ -172,8 +172,8 @@
The modem's state (see #org.freedesktop.ModemManager1.Modem:State) changed.
-->
-
-
+
+
@@ -333,7 +333,7 @@
MM_MODEM_STATE_UNKNOWN
will be reported.
-->
-
+