# HG changeset patch
# Node ID 7b516fe6cf350ff320a178ddc73a71e2d87b7fe2
# Parent  506aca7a12b0c5ccae339d5fcc5ca809e204c208
diff --git a/libpurple/circularbuffer.c b/libpurple/circularbuffer.c
--- a/libpurple/circularbuffer.c
+++ b/libpurple/circularbuffer.c
@@ -323,9 +323,9 @@ purple_circular_buffer_class_init(Purple
 	 * Since: 3.0
 	 */
 	properties[PROP_GROW_SIZE] = g_param_spec_uint64(
-	        "grow-size", "grow-size", "The grow size of the buffer", 0,
-	        G_MAXSIZE, 0,
-	        G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+		"grow-size", NULL, NULL,
+		0, G_MAXSIZE, 0,
+		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
 
 	/**
 	 * PurpleCircularBuffer:buffer-used:
@@ -335,8 +335,9 @@ purple_circular_buffer_class_init(Purple
 	 * Since: 3.0
 	 */
 	properties[PROP_BUFFER_USED] = g_param_spec_uint64(
-	        "buffer-used", "buffer-used", "The amount of the buffer used", 0,
-	        G_MAXSIZE, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+		"buffer-used", NULL, NULL,
+		0, G_MAXSIZE, 0,
+		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
 	/**
 	 * PurpleCircularBuffer:input:
@@ -345,9 +346,9 @@ purple_circular_buffer_class_init(Purple
 	 *
 	 * Since: 3.0
 	 */
-	properties[PROP_INPUT] = g_param_spec_pointer("input", "input",
-		                     "The input pointer of the buffer",
-		                     G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+	properties[PROP_INPUT] = g_param_spec_pointer(
+		"input", NULL, NULL,
+		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
 	/**
 	 * PurpleCircularBuffer:output:
@@ -356,9 +357,9 @@ purple_circular_buffer_class_init(Purple
 	 *
 	 * Since: 3.0
 	 */
-	properties[PROP_OUTPUT] = g_param_spec_pointer("output", "output",
-		                     "The output pointer of the buffer",
-		                     G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+	properties[PROP_OUTPUT] = g_param_spec_pointer(
+		"output", NULL, NULL,
+		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
 	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
diff --git a/libpurple/image.c b/libpurple/image.c
--- a/libpurple/image.c
+++ b/libpurple/image.c
@@ -146,12 +146,9 @@ purple_image_class_init(PurpleImageClass
 	 * Since: 3.0
 	 */
 	properties[PROP_PATH] = g_param_spec_string(
-		"path",
-		"path",
-		"The filepath for the image if one was provided",
+		"path", NULL, NULL,
 		NULL,
-		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
-	);
+		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
 	/**
 	 * PurpleImage:contents:
@@ -161,12 +158,9 @@ purple_image_class_init(PurpleImageClass
 	 * Since: 3.0
 	 */
 	properties[PROP_CONTENTS] = g_param_spec_boxed(
-		"contents",
-		"contents",
-		"The contents of the image stored in a GBytes",
+		"contents", NULL, NULL,
 		G_TYPE_BYTES,
-		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
-	);
+		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
 	/**
 	 * PurpleImage:size:
@@ -176,14 +170,9 @@ purple_image_class_init(PurpleImageClass
 	 * Since: 3.0
 	 */
 	properties[PROP_SIZE] = g_param_spec_uint64(
-		"size",
-		"size",
-		"The size of the image in bytes",
-		0,
-		G_MAXUINT64,
-		0,
-		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS
-	);
+		"size", NULL, NULL,
+		0, G_MAXUINT64, 0,
+		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
 	g_object_class_install_properties(gobj_class, N_PROPERTIES, properties);
 }
diff --git a/libpurple/purplecontact.c b/libpurple/purplecontact.c
--- a/libpurple/purplecontact.c
+++ b/libpurple/purplecontact.c
@@ -150,8 +150,7 @@ purple_contact_class_init(PurpleContactC
 	 * Since: 3.0
 	 */
 	properties[PROP_ACCOUNT] = g_param_spec_object(
-		"account", "account",
-		"The account this contact belongs to",
+		"account", NULL, NULL,
 		PURPLE_TYPE_ACCOUNT,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplecontactinfo.c b/libpurple/purplecontactinfo.c
--- a/libpurple/purplecontactinfo.c
+++ b/libpurple/purplecontactinfo.c
@@ -369,8 +369,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_ID] = g_param_spec_string(
-		"id", "id",
-		"The id of the contact",
+		"id", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
 
@@ -383,8 +382,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_USERNAME] = g_param_spec_string(
-		"username", "username",
-		"The username of the contact",
+		"username", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
 
@@ -397,8 +395,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_DISPLAY_NAME] = g_param_spec_string(
-		"display-name", "display-name",
-		"The display name of the contact",
+		"display-name", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -411,8 +408,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_ALIAS] = g_param_spec_string(
-		"alias", "alias",
-		"The alias of the contact.",
+		"alias", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -427,8 +423,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_COLOR] = g_param_spec_string(
-		"color", "color",
-		"The color to use when rendering the contact.",
+		"color", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -441,8 +436,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_EMAIL] = g_param_spec_string(
-		"email", "email",
-		"The primary email address for the contact.",
+		"email", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -455,8 +449,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_PHONE_NUMBER] = g_param_spec_string(
-		"phone-number", "phone-number",
-		"The primary phone number for the contact.",
+		"phone-number", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -469,8 +462,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_TIME_ZONE] = g_param_spec_boxed(
-		"time-zone", "time-zone",
-		"The time zone for the contact.",
+		"time-zone", NULL, NULL,
 		G_TYPE_TIME_ZONE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -484,8 +476,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_NOTE] = g_param_spec_string(
-		"note", "note",
-		"A note for the contact.",
+		"note", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -498,8 +489,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_AVATAR] = g_param_spec_object(
-		"avatar", "avatar",
-		"The avatar of the contact",
+		"avatar", NULL, NULL,
 		PURPLE_TYPE_AVATAR,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -512,8 +502,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_PRESENCE] = g_param_spec_object(
-		"presence", "presence",
-		"The presence of the contact",
+		"presence", NULL, NULL,
 		PURPLE_TYPE_PRESENCE,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -525,8 +514,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_TAGS] = g_param_spec_object(
-		"tags", "tags",
-		"The tags for the contact",
+		"tags", NULL, NULL,
 		PURPLE_TYPE_TAGS,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -538,8 +526,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_PERSON] = g_param_spec_object(
-		"person", "person",
-		"The person this contact belongs to.",
+		"person", NULL, NULL,
 		PURPLE_TYPE_PERSON,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -551,8 +538,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_PERMISSION] = g_param_spec_enum(
-		"permission", "permission",
-		"The permission level of the contact",
+		"permission", NULL, NULL,
 		PURPLE_TYPE_CONTACT_INFO_PERMISSION,
 		PURPLE_CONTACT_INFO_PERMISSION_UNSET,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
@@ -569,8 +555,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_SID] = g_param_spec_string(
-		"sid", "sid",
-		"The secondary id for the contact.",
+		"sid", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -582,8 +567,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_FAVORITE] = g_param_spec_boolean(
-		"favorite", "favorite",
-		"Whether or not this is a favorite contact.",
+		"favorite", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -609,8 +593,7 @@ purple_contact_info_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_NAME_FOR_DISPLAY] = g_param_spec_string(
-		"name-for-display", "name-for-display",
-		"The name that should be displayed for the contact info",
+		"name-for-display", NULL, NULL,
 		NULL,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplecontactmanager.c b/libpurple/purplecontactmanager.c
--- a/libpurple/purplecontactmanager.c
+++ b/libpurple/purplecontactmanager.c
@@ -285,8 +285,7 @@ purple_contact_manager_class_init(Purple
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -298,8 +297,7 @@ purple_contact_manager_class_init(Purple
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purpleconversation.c b/libpurple/purpleconversation.c
--- a/libpurple/purpleconversation.c
+++ b/libpurple/purpleconversation.c
@@ -809,8 +809,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_ID] = g_param_spec_string(
-		"id", "id",
-		"The identifier for the conversation.",
+		"id", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -839,8 +838,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_TYPE] = g_param_spec_enum(
-		"type", "type",
-		"The type of the conversation.",
+		"type", NULL, NULL,
 		PURPLE_TYPE_CONVERSATION_TYPE,
 		PURPLE_CONVERSATION_TYPE_UNSET,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
@@ -853,8 +851,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_ACCOUNT] = g_param_spec_object(
-		"account", "Account",
-		"The account for the conversation.",
+		"account", NULL, NULL,
 		PURPLE_TYPE_ACCOUNT,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -869,8 +866,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_AVATAR] = g_param_spec_object(
-		"avatar", "avatar",
-		"The avatar for this conversation.",
+		"avatar", NULL, NULL,
 		PURPLE_TYPE_AVATAR,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -882,8 +878,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_NAME] = g_param_spec_string(
-		"name", "Name",
-		"The name of the conversation.",
+		"name", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -907,8 +902,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_TITLE] = g_param_spec_string(
-		"title", "Title",
-		"The title of the conversation.",
+		"title", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
 
@@ -948,8 +942,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_TITLE_GENERATED] = g_param_spec_boolean(
-		"title-generated", "title-generated",
-		"Whether or not the current title was generated.",
+		"title-generated", NULL, NULL,
 		FALSE,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -963,8 +956,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_AGE_RESTRICTED] = g_param_spec_boolean(
-		"age-restricted", "age-restricted",
-		"Whether or not the conversation is age restricted.",
+		"age-restricted", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -980,8 +972,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_DESCRIPTION] = g_param_spec_string(
-		"description", "description",
-		"The description for the conversation.",
+		"description", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -996,8 +987,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_TOPIC] = g_param_spec_string(
-		"topic", "topic",
-		"The topic for the conversation.",
+		"topic", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -1011,8 +1001,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_TOPIC_AUTHOR] = g_param_spec_object(
-		"topic-author", "topic-author",
-		"The author of the topic for the conversation.",
+		"topic-author", NULL, NULL,
 		PURPLE_TYPE_CONTACT_INFO,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -1026,8 +1015,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_TOPIC_UPDATED] = g_param_spec_boxed(
-		"topic-updated", "topic-updated",
-		"The time when the topic was last updated for the conversation.",
+		"topic-updated", NULL, NULL,
 		G_TYPE_DATE_TIME,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -1043,8 +1031,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_USER_NICKNAME] = g_param_spec_string(
-		"user-nickname", "user-nickname",
-		"The nickname for the user in the conversation.",
+		"user-nickname", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -1056,8 +1043,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_FAVORITE] = g_param_spec_boolean(
-		"favorite", "favorite",
-		"Whether or not the conversation is a favorite.",
+		"favorite", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -1072,8 +1058,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_CREATED_ON] = g_param_spec_boxed(
-		"created-on", "created-on",
-		"When the conversation was created.",
+		"created-on", NULL, NULL,
 		G_TYPE_DATE_TIME,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -1087,8 +1072,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_CREATOR] = g_param_spec_object(
-		"creator", "creator",
-		"The contact info of who created the conversation.",
+		"creator", NULL, NULL,
 		PURPLE_TYPE_CONTACT_INFO,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -1109,8 +1093,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_ONLINE] = g_param_spec_boolean(
-		"online", "online",
-		"Whether or not the conversation can send and receive messages.",
+		"online", NULL, NULL,
 		TRUE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -1131,8 +1114,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_FEDERATED] = g_param_spec_boolean(
-		"federated", "federated",
-		"Whether or not this conversation is federated.",
+		"federated", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -1144,8 +1126,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_TAGS] = g_param_spec_object(
-		"tags", "tags",
-		"The tags for the conversation.",
+		"tags", NULL, NULL,
 		PURPLE_TYPE_TAGS,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -1157,8 +1138,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_MEMBERS] = g_param_spec_object(
-		"members", "members",
-		"The members that are currently in this conversation",
+		"members", NULL, NULL,
 		PURPLE_TYPE_CONVERSATION_MEMBERS,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -1170,8 +1150,7 @@ purple_conversation_class_init(PurpleCon
 	 * Since: 3.0
 	 */
 	properties[PROP_MESSAGES] = g_param_spec_object(
-		"messages", "messages",
-		"All of the messages in this conversation's history.",
+		"messages", NULL, NULL,
 		G_TYPE_LIST_MODEL,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purpleconversationmanager.c b/libpurple/purpleconversationmanager.c
--- a/libpurple/purpleconversationmanager.c
+++ b/libpurple/purpleconversationmanager.c
@@ -277,8 +277,7 @@ purple_conversation_manager_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -290,8 +289,7 @@ purple_conversation_manager_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplecreateconversationdetails.c b/libpurple/purplecreateconversationdetails.c
--- a/libpurple/purplecreateconversationdetails.c
+++ b/libpurple/purplecreateconversationdetails.c
@@ -147,8 +147,7 @@ purple_create_conversation_details_class
 	 * Since: 3.0.0
 	 */
 	properties[PROP_MAX_PARTICIPANTS] = g_param_spec_uint(
-		"max-participants", "max-participants",
-		"The maximum number of participants that the protocol supports.",
+		"max-participants", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -161,8 +160,7 @@ purple_create_conversation_details_class
 	 * Since: 3.0.0
 	 */
 	properties[PROP_PARTICIPANTS] = g_param_spec_object(
-		"participants", "participants",
-		"The list of contacts to add to the conversation.",
+		"participants", NULL, NULL,
 		G_TYPE_LIST_MODEL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplecredentialmanager.c b/libpurple/purplecredentialmanager.c
--- a/libpurple/purplecredentialmanager.c
+++ b/libpurple/purplecredentialmanager.c
@@ -301,8 +301,7 @@ purple_credential_manager_class_init(Pur
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -314,8 +313,7 @@ purple_credential_manager_class_init(Pur
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplecredentialprovider.c b/libpurple/purplecredentialprovider.c
--- a/libpurple/purplecredentialprovider.c
+++ b/libpurple/purplecredentialprovider.c
@@ -202,7 +202,7 @@ purple_credential_provider_class_init(Pu
 	 * Since: 3.0
 	 */
 	properties[PROP_ID] = g_param_spec_string(
-		"id", "id", "The identifier of the provider",
+		"id", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
 	);
@@ -215,7 +215,7 @@ purple_credential_provider_class_init(Pu
 	 * Since: 3.0
 	 */
 	properties[PROP_NAME] = g_param_spec_string(
-		"name", "name", "The name of the provider",
+		"name", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
 	);
@@ -228,7 +228,7 @@ purple_credential_provider_class_init(Pu
 	 * Since: 3.0
 	 */
 	properties[PROP_DESCRIPTION] = g_param_spec_string(
-		"description", "description", "The description of the provider",
+		"description", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
 	);
@@ -242,8 +242,7 @@ purple_credential_provider_class_init(Pu
 	 * Since: 3.0
 	 */
 	properties[PROP_SETTINGS] = g_param_spec_object(
-		"settings", "settings",
-		"The GSettings for the provider",
+		"settings", NULL, NULL,
 		G_TYPE_SETTINGS,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplefiletransfer.c b/libpurple/purplefiletransfer.c
--- a/libpurple/purplefiletransfer.c
+++ b/libpurple/purplefiletransfer.c
@@ -321,8 +321,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_ACCOUNT] = g_param_spec_object(
-		"account", "account",
-		"The account that this file transfer is for.",
+		"account", NULL, NULL,
 		PURPLE_TYPE_ACCOUNT,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -334,8 +333,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_REMOTE] = g_param_spec_object(
-		"remote", "remote",
-		"The contact info for the remote user.",
+		"remote", NULL, NULL,
 		PURPLE_TYPE_CONTACT_INFO,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -347,8 +345,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_INITIATOR] = g_param_spec_object(
-		"initiator", "initiator",
-		"The contact info of the user that initiated the file transfer.",
+		"initiator", NULL, NULL,
 		PURPLE_TYPE_CONTACT_INFO,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -361,8 +358,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_CANCELLABLE] = g_param_spec_object(
-		"cancellable", "cancellable",
-		"The cancellable for this transfer.",
+		"cancellable", NULL, NULL,
 		G_TYPE_CANCELLABLE,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -380,8 +376,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_STATE] = g_param_spec_enum(
-		"state", "state",
-		"The state of the transfer.",
+		"state", NULL, NULL,
 		PURPLE_TYPE_FILE_TRANSFER_STATE,
 		PURPLE_FILE_TRANSFER_STATE_UNKNOWN,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
@@ -398,8 +393,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_ERROR] = g_param_spec_boxed(
-		"error", "error",
-		"The error that caused the transfer to fail.",
+		"error", NULL, NULL,
 		G_TYPE_ERROR,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -414,8 +408,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_LOCAL_FILE] = g_param_spec_object(
-		"local-file", "local-file",
-		"The local file for the transfer.",
+		"local-file", NULL, NULL,
 		G_TYPE_FILE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -428,8 +421,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_FILENAME] = g_param_spec_string(
-		"filename", "filename",
-		"The base filename for the transfer.",
+		"filename", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -442,8 +434,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_FILE_SIZE] = g_param_spec_uint64(
-		"file-size", "file-size",
-		"The size of the file in bytes.",
+		"file-size", NULL, NULL,
 		0, G_MAXUINT64, 0,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -460,8 +451,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_CONTENT_TYPE] = g_param_spec_string(
-		"content-type", "content-type",
-		"The content type of the file being transferred.",
+		"content-type", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -474,8 +464,7 @@ purple_file_transfer_class_init(PurpleFi
 	 * Since: 3.0
 	 */
 	properties[PROP_MESSAGE] = g_param_spec_string(
-		"message", "message",
-		"The message to send with the transfer.",
+		"message", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplefiletransfermanager.c b/libpurple/purplefiletransfermanager.c
--- a/libpurple/purplefiletransfermanager.c
+++ b/libpurple/purplefiletransfermanager.c
@@ -155,8 +155,7 @@ purple_file_transfer_manager_class_init(
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -168,8 +167,7 @@ purple_file_transfer_manager_class_init(
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplehistoryadapter.c b/libpurple/purplehistoryadapter.c
--- a/libpurple/purplehistoryadapter.c
+++ b/libpurple/purplehistoryadapter.c
@@ -146,7 +146,7 @@ purple_history_adapter_class_init(Purple
 	 * Since: 3.0
 	 */
 	properties[PROP_ID] = g_param_spec_string(
-		"id", "id", "The identifier of the adapter",
+		"id", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
 	);
@@ -159,7 +159,7 @@ purple_history_adapter_class_init(Purple
 	 * Since: 3.0
 	 */
 	properties[PROP_NAME] = g_param_spec_string(
-		"name", "name", "The name of the adapter",
+		"name", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
 	);
diff --git a/libpurple/purplehistorymanager.c b/libpurple/purplehistorymanager.c
--- a/libpurple/purplehistorymanager.c
+++ b/libpurple/purplehistorymanager.c
@@ -178,8 +178,7 @@ purple_history_manager_class_init(Purple
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -191,8 +190,7 @@ purple_history_manager_class_init(Purple
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purpleidlemanager.c b/libpurple/purpleidlemanager.c
--- a/libpurple/purpleidlemanager.c
+++ b/libpurple/purpleidlemanager.c
@@ -92,8 +92,7 @@ purple_idle_manager_class_init(PurpleIdl
 	 * Since: 3.0
 	 */
 	properties[PROP_TIMESTAMP] = g_param_spec_boxed(
-		"timestamp", "timestamp",
-		"The aggregate of the oldest timestamp of all sources.",
+		"timestamp", NULL, NULL,
 		G_TYPE_DATE_TIME,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplenotificationauthorizationrequest.c b/libpurple/purplenotificationauthorizationrequest.c
--- a/libpurple/purplenotificationauthorizationrequest.c
+++ b/libpurple/purplenotificationauthorizationrequest.c
@@ -230,8 +230,7 @@ purple_notification_authorization_reques
 	 * Since: 3.0
 	 */
 	properties[PROP_AUTHORIZATION_REQUEST] = g_param_spec_object(
-	    "authorization-request", "authorization-request",
-	    "The authorization request this notification is for.",
+	    "authorization-request", NULL, NULL,
 	    PURPLE_TYPE_AUTHORIZATION_REQUEST,
 	    G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplenotificationmanager.c b/libpurple/purplenotificationmanager.c
--- a/libpurple/purplenotificationmanager.c
+++ b/libpurple/purplenotificationmanager.c
@@ -228,8 +228,7 @@ purple_notification_manager_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -241,8 +240,7 @@ purple_notification_manager_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -254,8 +252,7 @@ purple_notification_manager_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_UNREAD_COUNT] = g_param_spec_uint(
-		"unread-count", "unread-count",
-		"The number of unread messages in the manager.",
+		"unread-count", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purpleperson.c b/libpurple/purpleperson.c
--- a/libpurple/purpleperson.c
+++ b/libpurple/purpleperson.c
@@ -387,8 +387,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -400,8 +399,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -413,8 +411,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_ID] = g_param_spec_string(
-		"id", "id",
-		"The id of this contact",
+		"id", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -426,8 +423,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_ALIAS] = g_param_spec_string(
-		"alias", "alias",
-		"The alias of this person.",
+		"alias", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -440,8 +436,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_AVATAR] = g_param_spec_object(
-		"avatar", "avatar",
-		"The avatar of this person",
+		"avatar", NULL, NULL,
 		PURPLE_TYPE_AVATAR,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -456,8 +451,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_AVATAR_FOR_DISPLAY] = g_param_spec_object(
-		"avatar-for-display", "avatar-for-display",
-		"The avatar to display for this person",
+		"avatar-for-display", NULL, NULL,
 		PURPLE_TYPE_AVATAR,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -473,8 +467,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_COLOR] = g_param_spec_string(
-		"color", "color",
-		"The custom color for this person.",
+		"color", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -490,8 +483,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_COLOR_FOR_DISPLAY] = g_param_spec_string(
-		"color-for-display", "color-for-display",
-		"The color to use when displaying this person.",
+		"color-for-display", NULL, NULL,
 		NULL,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -503,8 +495,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_TAGS] = g_param_spec_object(
-		"tags", "tags",
-		"The tags for this person",
+		"tags", NULL, NULL,
 		PURPLE_TYPE_TAGS,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -522,8 +513,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_NAME_FOR_DISPLAY] = g_param_spec_string(
-		"name-for-display", "name-for-display",
-		"The name that should be displayed for the person",
+		"name-for-display", NULL, NULL,
 		NULL,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -538,8 +528,7 @@ purple_person_class_init(PurplePersonCla
 	 * Since: 3.0
 	 */
 	properties[PROP_PRIORITY_CONTACT_INFO] = g_param_spec_object(
-		"priority-contact-info", "priority-contact-info",
-		"The priority contact info for the person",
+		"priority-contact-info", NULL, NULL,
 		PURPLE_TYPE_CONTACT_INFO,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purpleplugininfo.c b/libpurple/purpleplugininfo.c
--- a/libpurple/purpleplugininfo.c
+++ b/libpurple/purpleplugininfo.c
@@ -218,8 +218,7 @@ purple_plugin_info_class_init(PurplePlug
 	 * Since: 3.0
 	 */
 	properties[PROP_FLAGS] = g_param_spec_flags(
-		"flags", "Plugin flags",
-		"The flags for the plugin",
+		"flags", NULL, NULL,
 		PURPLE_TYPE_PLUGIN_INFO_FLAGS,
 		0,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
@@ -232,8 +231,7 @@ purple_plugin_info_class_init(PurplePlug
 	 * Since: 3.0
 	 */
 	properties[PROP_ACTION_GROUP] = g_param_spec_object(
-		"action-group", "action-group",
-		"The action group for this plugin",
+		"action-group", NULL, NULL,
 		G_TYPE_ACTION_GROUP,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -245,8 +243,7 @@ purple_plugin_info_class_init(PurplePlug
 	 * Since: 3.0
 	 */
 	properties[PROP_ACTION_MENU] = g_param_spec_object(
-		"action-menu", "action-menu",
-		"The menu model for this plugin",
+		"action-menu", NULL, NULL,
 		G_TYPE_MENU_MODEL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purpleprotocol.c b/libpurple/purpleprotocol.c
--- a/libpurple/purpleprotocol.c
+++ b/libpurple/purpleprotocol.c
@@ -279,8 +279,7 @@ purple_protocol_class_init(PurpleProtoco
 	 * Since: 3.0
 	 */
 	properties[PROP_ID] = g_param_spec_string(
-		"id", "id",
-		"The identifier for the protocol",
+		"id", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -292,8 +291,7 @@ purple_protocol_class_init(PurpleProtoco
 	 * Since: 3.0
 	 */
 	properties[PROP_NAME] = g_param_spec_string(
-		"name", "name",
-		"The name of the protocol to show in the user interface",
+		"name", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -305,8 +303,7 @@ purple_protocol_class_init(PurpleProtoco
 	 * Since: 3.0
 	 */
 	properties[PROP_DESCRIPTION] = g_param_spec_string(
-		"description", "description",
-		"The description of the protocol to show in the user interface",
+		"description", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -320,8 +317,7 @@ purple_protocol_class_init(PurpleProtoco
 	 * Since: 3.0
 	 */
 	properties[PROP_ICON_NAME] = g_param_spec_string(
-		"icon-name", "icon-name",
-		"The name of the XDG icon.",
+		"icon-name", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -335,8 +331,7 @@ purple_protocol_class_init(PurpleProtoco
 	 * Since: 3.0
 	 */
 	properties[PROP_ICON_SEARCH_PATH] = g_param_spec_string(
-		"icon-search-path", "icon-search-path",
-		"The path to an XDG Icon Theme directory.",
+		"icon-search-path", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -349,8 +344,7 @@ purple_protocol_class_init(PurpleProtoco
 	 * Since: 3.0
 	 */
 	properties[PROP_ICON_RESOURCE_PATH] = g_param_spec_string(
-		"icon-resource-path", "icon-resource-path",
-		"The GResource path to the icons.",
+		"icon-resource-path", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -362,8 +356,7 @@ purple_protocol_class_init(PurpleProtoco
 	 * Since: 3.0
 	 */
 	properties[PROP_OPTIONS] = g_param_spec_flags(
-		"options", "options",
-		"The options for the protocol",
+		"options", NULL, NULL,
 		PURPLE_TYPE_PROTOCOL_OPTIONS,
 		0,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
diff --git a/libpurple/purpleprotocolmanager.c b/libpurple/purpleprotocolmanager.c
--- a/libpurple/purpleprotocolmanager.c
+++ b/libpurple/purpleprotocolmanager.c
@@ -173,8 +173,7 @@ purple_protocol_manager_class_init(Purpl
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -186,8 +185,7 @@ purple_protocol_manager_class_init(Purpl
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purpleproxyinfo.c b/libpurple/purpleproxyinfo.c
--- a/libpurple/purpleproxyinfo.c
+++ b/libpurple/purpleproxyinfo.c
@@ -123,80 +123,75 @@ purple_proxy_info_init(G_GNUC_UNUSED Pur
 
 static void
 purple_proxy_info_class_init(PurpleProxyInfoClass *klass) {
-    GObjectClass *obj_class = G_OBJECT_CLASS(klass);
+	GObjectClass *obj_class = G_OBJECT_CLASS(klass);
 
-    obj_class->get_property = purple_proxy_info_get_property;
-    obj_class->set_property = purple_proxy_info_set_property;
-    obj_class->finalize = purple_proxy_info_finalize;
+	obj_class->get_property = purple_proxy_info_get_property;
+	obj_class->set_property = purple_proxy_info_set_property;
+	obj_class->finalize = purple_proxy_info_finalize;
 
-    /**
-     * PurpleProxyInfo:proxy-type:
-     *
-     * The [enum@ProxyType] to use for this proxy.
-     *
-     * Since: 3.0
-     */
-    properties[PROP_PROXY_TYPE] = g_param_spec_enum(
-        "proxy-type", "proxy-type",
-        "The proxy type for this proxy.",
-        PURPLE_TYPE_PROXY_TYPE,
-        PURPLE_PROXY_TYPE_USE_GLOBAL,
-        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+	/**
+	 * PurpleProxyInfo:proxy-type:
+	 *
+	 * The [enum@ProxyType] to use for this proxy.
+	 *
+	 * Since: 3.0
+	 */
+	properties[PROP_PROXY_TYPE] = g_param_spec_enum(
+		"proxy-type", NULL, NULL,
+		PURPLE_TYPE_PROXY_TYPE,
+		PURPLE_PROXY_TYPE_USE_GLOBAL,
+		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-    /**
-     * PurpleProxyInfo:hostname:
-     *
-     * The hostname to use for this proxy.
-     *
-     * Since: 3.0
-     */
-    properties[PROP_HOSTNAME] = g_param_spec_string(
-        "hostname", "hostname",
-        "The hostname for this proxy.",
-        NULL,
-        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+	/**
+	 * PurpleProxyInfo:hostname:
+	 *
+	 * The hostname to use for this proxy.
+	 *
+	 * Since: 3.0
+	 */
+	properties[PROP_HOSTNAME] = g_param_spec_string(
+		"hostname", NULL, NULL,
+		NULL,
+		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-    /**
-     * PurpleProxyInfo:port:
-     *
-     * The port to use for this proxy.
-     *
-     * Since: 3.0
-     */
-    properties[PROP_PORT] = g_param_spec_int(
-        "port", "port",
-        "The port for this proxy.",
-        0, 65535, 0,
-        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+	/**
+	 * PurpleProxyInfo:port:
+	 *
+	 * The port to use for this proxy.
+	 *
+	 * Since: 3.0
+	 */
+	properties[PROP_PORT] = g_param_spec_int(
+		"port", NULL, NULL,
+		0, 65535, 0,
+		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-    /**
-     * PurpleProxyInfo:username:
-     *
-     * The username to use for this proxy.
-     *
-     * Since: 3.0
-     */
-    properties[PROP_USERNAME] = g_param_spec_string(
-        "username", "username",
-        "The username for this proxy.",
-        NULL,
-        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+	/**
+	 * PurpleProxyInfo:username:
+	 *
+	 * The username to use for this proxy.
+	 *
+	 * Since: 3.0
+	 */
+	properties[PROP_USERNAME] = g_param_spec_string(
+		"username", NULL, NULL,
+		NULL,
+		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-    /**
-     * PurpleProxyInfo:password:
-     *
-     * The password to use for this proxy.
-     *
-     * Since: 3.0
-     */
-    properties[PROP_PASSWORD] = g_param_spec_string(
-        "password", "password",
-        "The password for this proxy.",
-        NULL,
-        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+	/**
+	 * PurpleProxyInfo:password:
+	 *
+	 * The password to use for this proxy.
+	 *
+	 * Since: 3.0
+	 */
+	properties[PROP_PASSWORD] = g_param_spec_string(
+		"password", NULL, NULL,
+		NULL,
+		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
 
-    g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 /******************************************************************************
diff --git a/libpurple/purplesavedpresence.c b/libpurple/purplesavedpresence.c
--- a/libpurple/purplesavedpresence.c
+++ b/libpurple/purplesavedpresence.c
@@ -331,8 +331,7 @@ purple_saved_presence_class_init(PurpleS
 	 * Since: 3.0
 	 */
 	properties[PROP_SETTINGS] = g_param_spec_object(
-		"settings", "settings",
-		"The GSettings for this saved presence.",
+		"settings", NULL, NULL,
 		G_TYPE_SETTINGS,
 		G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -344,8 +343,7 @@ purple_saved_presence_class_init(PurpleS
 	 * Since: 3.0
 	 */
 	properties[PROP_LAST_USED] = g_param_spec_boxed(
-		"last-used", "last-used",
-		"The time this presence was last used.",
+		"last-used", NULL, NULL,
 		G_TYPE_DATE_TIME,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -357,8 +355,7 @@ purple_saved_presence_class_init(PurpleS
 	 * Since: 3.0
 	 */
 	properties[PROP_USE_COUNT] = g_param_spec_uint64(
-		"use-count", "use-count",
-		"The number of times this saved presence has been used.",
+		"use-count", NULL, NULL,
 		0, G_MAXUINT64, 0,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -371,8 +368,7 @@ purple_saved_presence_class_init(PurpleS
 	 * Since: 3.0
 	 */
 	properties[PROP_ID] = g_param_spec_string(
-		"id", "id",
-		"The identifier of this saved presence.",
+		"id", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -384,8 +380,7 @@ purple_saved_presence_class_init(PurpleS
 	 * Since: 3.0
 	 */
 	properties[PROP_NAME] = g_param_spec_string(
-		"name", "name",
-		"The name of this saved presence.",
+		"name", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -397,8 +392,7 @@ purple_saved_presence_class_init(PurpleS
 	 * Since: 3.0
 	 */
 	properties[PROP_PRIMITIVE] = g_param_spec_enum(
-		"primitive", "primitive",
-		"The primitive for this saved presence.",
+		"primitive", NULL, NULL,
 		PURPLE_TYPE_PRESENCE_PRIMITIVE,
 		PURPLE_PRESENCE_PRIMITIVE_OFFLINE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
@@ -411,8 +405,7 @@ purple_saved_presence_class_init(PurpleS
 	 * Since: 3.0
 	 */
 	properties[PROP_MESSAGE] = g_param_spec_string(
-		"message", "message",
-		"The status message of this saved presence.",
+		"message", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -424,8 +417,7 @@ purple_saved_presence_class_init(PurpleS
 	 * Since: 3.0
 	 */
 	properties[PROP_EMOJI] = g_param_spec_string(
-		"emoji", "emoji",
-		"The emoji for this saved presence.",
+		"emoji", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/purplesqlitehistoryadapter.c b/libpurple/purplesqlitehistoryadapter.c
--- a/libpurple/purplesqlitehistoryadapter.c
+++ b/libpurple/purplesqlitehistoryadapter.c
@@ -554,7 +554,7 @@ purple_sqlite_history_adapter_class_init
 	 * Since: 3.0
 	 */
 	properties[PROP_FILENAME] = g_param_spec_string(
-		"filename", "filename", "The filename of the sqlite database",
+		"filename", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
 	);
diff --git a/libpurple/purplewhiteboard.c b/libpurple/purplewhiteboard.c
--- a/libpurple/purplewhiteboard.c
+++ b/libpurple/purplewhiteboard.c
@@ -202,8 +202,7 @@ purple_whiteboard_class_init(PurpleWhite
 	 * Since: 3.0
 	 */
 	properties[PROP_STATE] = g_param_spec_int(
-		"state", "State",
-		"State of the whiteboard.",
+		"state", NULL, NULL,
 		G_MININT, G_MAXINT, 0,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
 
@@ -215,8 +214,8 @@ purple_whiteboard_class_init(PurpleWhite
 	 * Since: 3.0
 	 */
 	properties[PROP_ACCOUNT] = g_param_spec_object(
-		"account", "Account",
-		"The whiteboard's account.", PURPLE_TYPE_ACCOUNT,
+		"account", NULL, NULL,
+		PURPLE_TYPE_ACCOUNT,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
 	/**
@@ -227,8 +226,8 @@ purple_whiteboard_class_init(PurpleWhite
 	 * Since: 3.0
 	 */
 	properties[PROP_ID] = g_param_spec_string(
-		"id", "id",
-		"The ID of the whiteboard.", NULL,
+		"id", NULL, NULL,
+		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
 	/**
@@ -239,8 +238,7 @@ purple_whiteboard_class_init(PurpleWhite
 	 * Since: 3.0
 	 */
 	properties[PROP_DRAW_LIST] = g_param_spec_pointer(
-		"draw-list", "Draw list",
-		"A list of points to draw to the buddy.",
+		"draw-list", NULL, NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
 	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
diff --git a/libpurple/purplewhiteboardmanager.c b/libpurple/purplewhiteboardmanager.c
--- a/libpurple/purplewhiteboardmanager.c
+++ b/libpurple/purplewhiteboardmanager.c
@@ -145,8 +145,7 @@ purple_whiteboard_manager_class_init(Pur
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -158,8 +157,7 @@ purple_whiteboard_manager_class_init(Pur
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/request/purplerequestfield.c b/libpurple/request/purplerequestfield.c
--- a/libpurple/request/purplerequestfield.c
+++ b/libpurple/request/purplerequestfield.c
@@ -198,8 +198,7 @@ purple_request_field_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_ID] = g_param_spec_string(
-		"id", "id",
-		"The ID of the field.",
+		"id", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -211,8 +210,7 @@ purple_request_field_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_LABEL] = g_param_spec_string(
-		"label", "label",
-		"The label of the field.",
+		"label", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -224,8 +222,7 @@ purple_request_field_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_VISIBLE] = g_param_spec_boolean(
-		"visible", "visible",
-		"Whether the field should be visible.",
+		"visible", NULL, NULL,
 		TRUE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -237,8 +234,7 @@ purple_request_field_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_SENSITIVE] = g_param_spec_boolean(
-		"sensitive", "sensitive",
-		"Whether the field should be sensitive.",
+		"sensitive", NULL, NULL,
 		TRUE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -250,8 +246,7 @@ purple_request_field_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_TYPE_HINT] = g_param_spec_string(
-		"type-hint", "type-hint",
-		"The type hint of the field.",
+		"type-hint", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -263,8 +258,7 @@ purple_request_field_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_TOOLTIP] = g_param_spec_string(
-		"tooltip", "tooltip",
-		"The tooltip of the field.",
+		"tooltip", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -276,8 +270,7 @@ purple_request_field_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_REQUIRED] = g_param_spec_boolean(
-		"required", "required",
-		"Whether the field is required to complete the request.",
+		"required", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -289,8 +282,7 @@ purple_request_field_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_FILLED] = g_param_spec_boolean(
-		"filled", "filled",
-		"Whether the field has been filled.",
+		"filled", NULL, NULL,
 		TRUE,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -302,8 +294,7 @@ purple_request_field_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_VALID] = g_param_spec_boolean(
-		"valid", "valid",
-		"Whether the field has a valid value.",
+		"valid", NULL, NULL,
 		TRUE,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/request/purplerequestfieldaccount.c b/libpurple/request/purplerequestfieldaccount.c
--- a/libpurple/request/purplerequestfieldaccount.c
+++ b/libpurple/request/purplerequestfieldaccount.c
@@ -134,8 +134,7 @@ purple_request_field_account_class_init(
 	 * Since: 3.0
 	 */
 	properties[PROP_DEFAULT_VALUE] = g_param_spec_object(
-		"default-value", "default-value",
-		"The default value of the field.",
+		"default-value", NULL, NULL,
 		PURPLE_TYPE_ACCOUNT,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -147,8 +146,7 @@ purple_request_field_account_class_init(
 	 * Since: 3.0
 	 */
 	properties[PROP_VALUE] = g_param_spec_object(
-		"value", "value",
-		"The value of the field.",
+		"value", NULL, NULL,
 		PURPLE_TYPE_ACCOUNT,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -163,8 +161,7 @@ purple_request_field_account_class_init(
 	 * Since: 3.0
 	 */
 	properties[PROP_SHOW_ALL] = g_param_spec_boolean(
-		"show-all", "show-all",
-		"Whether to show all accounts in an account field.",
+		"show-all", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/request/purplerequestfieldbool.c b/libpurple/request/purplerequestfieldbool.c
--- a/libpurple/request/purplerequestfieldbool.c
+++ b/libpurple/request/purplerequestfieldbool.c
@@ -107,8 +107,7 @@ purple_request_field_bool_class_init(Pur
 	 * Since: 3.0
 	 */
 	properties[PROP_DEFAULT_VALUE] = g_param_spec_boolean(
-		"default-value", "default-value",
-		"The default value of the field.",
+		"default-value", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -120,8 +119,7 @@ purple_request_field_bool_class_init(Pur
 	 * Since: 3.0
 	 */
 	properties[PROP_VALUE] = g_param_spec_boolean(
-		"value", "value",
-		"The value of the field.",
+		"value", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/request/purplerequestfieldchoice.c b/libpurple/request/purplerequestfieldchoice.c
--- a/libpurple/request/purplerequestfieldchoice.c
+++ b/libpurple/request/purplerequestfieldchoice.c
@@ -121,8 +121,7 @@ purple_request_field_choice_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_DEFAULT_VALUE] = g_param_spec_pointer(
-		"default-value", "default-value",
-		"The default value of the field.",
+		"default-value", NULL, NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
 	/**
@@ -133,8 +132,7 @@ purple_request_field_choice_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_VALUE] = g_param_spec_pointer(
-		"value", "value",
-		"The value of the field.",
+		"value", NULL, NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
 	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
diff --git a/libpurple/request/purplerequestfieldimage.c b/libpurple/request/purplerequestfieldimage.c
--- a/libpurple/request/purplerequestfieldimage.c
+++ b/libpurple/request/purplerequestfieldimage.c
@@ -132,8 +132,7 @@ purple_request_field_image_class_init(Pu
 	 * Since: 3.0
 	 */
 	properties[PROP_SCALE_X] = g_param_spec_uint(
-		"scale-x", "scale-x",
-		"The X scale coefficient of the image.",
+		"scale-x", NULL, NULL,
 		1, G_MAXUINT, 1,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -145,8 +144,7 @@ purple_request_field_image_class_init(Pu
 	 * Since: 3.0
 	 */
 	properties[PROP_SCALE_Y] = g_param_spec_uint(
-		"scale-y", "scale-y",
-		"The Y scale coefficient of the image.",
+		"scale-y", NULL, NULL,
 		1, G_MAXUINT, 1,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -158,8 +156,7 @@ purple_request_field_image_class_init(Pu
 	 * Since: 3.0
 	 */
 	properties[PROP_BUFFER] = g_param_spec_pointer(
-		"buffer", "buffer",
-		"The contents of the image.",
+		"buffer", NULL, NULL,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
 	/**
@@ -170,8 +167,7 @@ purple_request_field_image_class_init(Pu
 	 * Since: 3.0
 	 */
 	properties[PROP_SIZE] = g_param_spec_uint64(
-		"size", "size",
-		"The size in bytes of the image.",
+		"size", NULL, NULL,
 		0, G_MAXSIZE, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/request/purplerequestfieldint.c b/libpurple/request/purplerequestfieldint.c
--- a/libpurple/request/purplerequestfieldint.c
+++ b/libpurple/request/purplerequestfieldint.c
@@ -154,8 +154,7 @@ purple_request_field_int_class_init(Purp
 	 * Since: 3.0
 	 */
 	properties[PROP_DEFAULT_VALUE] = g_param_spec_int(
-		"default-value", "default-value",
-		"The default value of the field.",
+		"default-value", NULL, NULL,
 		G_MININT, G_MAXINT, 0,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -167,8 +166,7 @@ purple_request_field_int_class_init(Purp
 	 * Since: 3.0
 	 */
 	properties[PROP_VALUE] = g_param_spec_int(
-		"value", "value",
-		"The value of the field.",
+		"value", NULL, NULL,
 		G_MININT, G_MAXINT, 0,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -180,8 +178,7 @@ purple_request_field_int_class_init(Purp
 	 * Since: 3.0
 	 */
 	properties[PROP_LOWER_BOUND] = g_param_spec_int(
-		"lower-bound", "lower-bound",
-		"The lower bound of the field.",
+		"lower-bound", NULL, NULL,
 		G_MININT, G_MAXINT, 0,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -193,8 +190,7 @@ purple_request_field_int_class_init(Purp
 	 * Since: 3.0
 	 */
 	properties[PROP_UPPER_BOUND] = g_param_spec_int(
-		"upper-bound", "upper-bound",
-		"The upper bound of the field.",
+		"upper-bound", NULL, NULL,
 		G_MININT, G_MAXINT, 0,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/request/purplerequestfieldlist.c b/libpurple/request/purplerequestfieldlist.c
--- a/libpurple/request/purplerequestfieldlist.c
+++ b/libpurple/request/purplerequestfieldlist.c
@@ -122,8 +122,7 @@ purple_request_field_list_class_init(Pur
 	 * Since: 3.0
 	 */
 	properties[PROP_MULTI_SELECT] = g_param_spec_boolean(
-		"multi-select", "multi-select",
-		"Whether the field should allow multiple selections.",
+		"multi-select", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/request/purplerequestfieldstring.c b/libpurple/request/purplerequestfieldstring.c
--- a/libpurple/request/purplerequestfieldstring.c
+++ b/libpurple/request/purplerequestfieldstring.c
@@ -166,8 +166,7 @@ purple_request_field_string_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_MULTILINE] = g_param_spec_boolean(
-		"multiline", "multiline",
-		"Whether the field should allow multiline input.",
+		"multiline", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -179,8 +178,7 @@ purple_request_field_string_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_MASKED] = g_param_spec_boolean(
-		"masked", "masked",
-		"Whether the field should be masked.",
+		"masked", NULL, NULL,
 		FALSE,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -192,8 +190,7 @@ purple_request_field_string_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_DEFAULT_VALUE] = g_param_spec_string(
-		"default-value", "default-value",
-		"The default value of the field.",
+		"default-value", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
@@ -205,8 +202,7 @@ purple_request_field_string_class_init(P
 	 * Since: 3.0
 	 */
 	properties[PROP_VALUE] = g_param_spec_string(
-		"value", "value",
-		"The value of the field.",
+		"value", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/request/purplerequestgroup.c b/libpurple/request/purplerequestgroup.c
--- a/libpurple/request/purplerequestgroup.c
+++ b/libpurple/request/purplerequestgroup.c
@@ -198,8 +198,7 @@ purple_request_group_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -211,8 +210,7 @@ purple_request_group_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -224,8 +222,7 @@ purple_request_group_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_TITLE] = g_param_spec_string(
-		"title", "title",
-		"The title of the field group.",
+		"title", NULL, NULL,
 		NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
@@ -237,8 +234,7 @@ purple_request_group_class_init(PurpleRe
 	 * Since: 3.0
 	 */
 	properties[PROP_VALID] = g_param_spec_boolean(
-		"valid", "valid",
-		"Whether all fields in a group are valid.",
+		"valid", NULL, NULL,
 		TRUE,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
diff --git a/libpurple/request/purplerequestpage.c b/libpurple/request/purplerequestpage.c
--- a/libpurple/request/purplerequestpage.c
+++ b/libpurple/request/purplerequestpage.c
@@ -192,8 +192,7 @@ purple_request_page_class_init(PurpleReq
 	 * Since: 3.0
 	 */
 	properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
-		"item-type", "item-type",
-		"The type of the contained items.",
+		"item-type", NULL, NULL,
 		G_TYPE_OBJECT,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -205,8 +204,7 @@ purple_request_page_class_init(PurpleReq
 	 * Since: 3.0
 	 */
 	properties[PROP_N_ITEMS] = g_param_spec_uint(
-		"n-items", "n-items",
-		"The number of contained items.",
+		"n-items", NULL, NULL,
 		0, G_MAXUINT, 0,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
@@ -218,8 +216,7 @@ purple_request_page_class_init(PurpleReq
 	 * Since: 3.0
 	 */
 	properties[PROP_VALID] = g_param_spec_boolean(
-		"valid", "valid",
-		"Whether all fields in a page are valid.",
+		"valid", NULL, NULL,
 		TRUE,
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
