diff --git a/gobject/gtype.c b/gobject/gtype.c
index f2442ea..83749ff 100644
--- a/gobject/gtype.c
+++ b/gobject/gtype.c
@@ -2333,7 +2333,9 @@ g_type_remove_interface_check (gpointer                check_data,
  * type and its instances.  The value of @flags determines additional
  * characteristics of the fundamental type.
  *
- * Returns: The predefined type identifier.
+ * Returns: The predefined type identifier or 0 if the type could not
+ *  be registered, e.g. because it was already registered or another
+ *  condition failed.
  */
 GType
 g_type_register_fundamental (GType                       type_id,
@@ -2404,7 +2406,9 @@ g_type_register_fundamental (GType                       type_id,
  *
  * Since: 2.12
  *
- * Returns: The new type identifier.
+ * Returns: The new type identifier or 0 if the type could not
+ *  be registered, e.g. because it was already registered or another
+ *  condition failed.
  */
 GType
 g_type_register_static_simple (GType             parent_type,
@@ -2444,7 +2448,9 @@ g_type_register_static_simple (GType             parent_type,
  * instances (if not abstract).  The value of @flags determines the nature
  * (e.g. abstract or not) of the type.
  *
- * Returns: The new type identifier.
+ * Returns: The new type identifier or 0 if the type could not
+ *  be registered, e.g. because it was already registered the class
+ *  has a finalizer specified or another condition failed.
  */
 GType
 g_type_register_static (GType            parent_type,
