# HG changeset patch
# Node ID 74e64f8c2700
# Parent  8a8c571eb98c
diff --git a/finch/gntmedia.c b/finch/gntmedia.c
--- a/finch/gntmedia.c
+++ b/finch/gntmedia.c
@@ -74,14 +74,15 @@ static void finch_media_get_property (GO
 static void finch_media_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
 
 enum {
-	MESSAGE,
-	LAST_SIGNAL
+	SIG_MESSAGE,
+	N_SIGNALS,
 };
-static guint finch_media_signals[LAST_SIGNAL] = {0};
+static guint finch_media_signals[N_SIGNALS] = {0, };
 
 enum {
 	PROP_0,
 	PROP_MEDIA,
+	N_PROPERTIES,
 };
 
 G_DEFINE_TYPE(FinchMedia, finch_media, GNT_TYPE_BOX);
@@ -102,7 +103,7 @@ finch_media_class_init (FinchMediaClass 
 			PURPLE_TYPE_MEDIA,
 			G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
 
-	finch_media_signals[MESSAGE] = g_signal_new("message", G_TYPE_FROM_CLASS(klass),
+	finch_media_signals[SIG_MESSAGE] = g_signal_new("message", G_TYPE_FROM_CLASS(klass),
 					G_SIGNAL_RUN_LAST, 0, NULL, NULL,
 					g_cclosure_marshal_VOID__STRING,
 					G_TYPE_NONE, 1, G_TYPE_STRING);
@@ -134,7 +135,7 @@ finch_media_finalize (GObject *media)
 static void
 finch_media_emit_message(FinchMedia *gntmedia, const char *msg)
 {
-	g_signal_emit(gntmedia, finch_media_signals[MESSAGE], 0, msg);
+	g_signal_emit(gntmedia, finch_media_signals[SIG_MESSAGE], 0, msg);
 }
 
 static void
diff --git a/finch/gntplugin.c b/finch/gntplugin.c
--- a/finch/gntplugin.c
+++ b/finch/gntplugin.c
@@ -39,7 +39,7 @@ enum
 {
 	PROP_0,
 	PROP_GNT_PREF_FRAME_CB,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
 static struct
diff --git a/libpurple/blistnode.c b/libpurple/blistnode.c
--- a/libpurple/blistnode.c
+++ b/libpurple/blistnode.c
@@ -35,12 +35,12 @@ struct _PurpleBlistNodePrivate {
 /* Blist node property enums */
 enum
 {
-	BLNODE_PROP_0,
-	BLNODE_PROP_TRANSIENT,
-	BLNODE_PROP_LAST
+	PROP_0,
+	PROP_TRANSIENT,
+	N_PROPERTIES,
 };
 
-static GParamSpec *bn_properties[BLNODE_PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleBlistNode, purple_blist_node,
 		G_TYPE_OBJECT);
@@ -123,8 +123,7 @@ purple_blist_node_set_transient(PurpleBl
 	priv = purple_blist_node_get_instance_private(node);
 	priv->transient = transient;
 
-	g_object_notify_by_pspec(G_OBJECT(node),
-			bn_properties[BLNODE_PROP_TRANSIENT]);
+	g_object_notify_by_pspec(G_OBJECT(node), properties[PROP_TRANSIENT]);
 }
 
 gboolean
@@ -314,7 +313,7 @@ purple_blist_node_set_property(GObject *
 	PurpleBlistNode *node = PURPLE_BLIST_NODE(obj);
 
 	switch (param_id) {
-		case BLNODE_PROP_TRANSIENT:
+		case PROP_TRANSIENT:
 			purple_blist_node_set_transient(node, g_value_get_boolean(value));
 			break;
 		default:
@@ -331,7 +330,7 @@ purple_blist_node_get_property(GObject *
 	PurpleBlistNode *node = PURPLE_BLIST_NODE(obj);
 
 	switch (param_id) {
-		case BLNODE_PROP_TRANSIENT:
+		case PROP_TRANSIENT:
 			g_value_set_boolean(value, purple_blist_node_is_transient(node));
 			break;
 		default:
@@ -375,12 +374,10 @@ purple_blist_node_class_init(PurpleBlist
 	obj_class->get_property = purple_blist_node_get_property;
 	obj_class->set_property = purple_blist_node_set_property;
 
-	bn_properties[BLNODE_PROP_TRANSIENT] = g_param_spec_boolean("transient",
+	properties[PROP_TRANSIENT] = g_param_spec_boolean("transient",
 				"Transient",
 				"Whether node should not be saved with the buddy list.",
 				FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, BLNODE_PROP_LAST,
-				bn_properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
-
diff --git a/libpurple/buddy.c b/libpurple/buddy.c
--- a/libpurple/buddy.c
+++ b/libpurple/buddy.c
@@ -54,10 +54,10 @@ enum {
 	PROP_ACCOUNT,
 	PROP_PRESENCE,
 	PROP_MEDIA_CAPS,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleBuddy, purple_buddy, PURPLE_TYPE_BLIST_NODE)
 
diff --git a/libpurple/chat.c b/libpurple/chat.c
--- a/libpurple/chat.c
+++ b/libpurple/chat.c
@@ -44,13 +44,13 @@ enum
 	PROP_ALIAS,
 	PROP_ACCOUNT,
 	PROP_COMPONENTS,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
 /******************************************************************************
  * Globals
  *****************************************************************************/
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleChat, purple_chat, PURPLE_TYPE_BLIST_NODE);
 
@@ -288,7 +288,7 @@ static void purple_chat_class_init(Purpl
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
 	);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 PurpleChat *
diff --git a/libpurple/circularbuffer.c b/libpurple/circularbuffer.c
--- a/libpurple/circularbuffer.c
+++ b/libpurple/circularbuffer.c
@@ -50,18 +50,18 @@ typedef struct {
  * Enums
  *****************************************************************************/
 enum {
-	PROP_ZERO,
+	PROP_0,
 	PROP_GROW_SIZE,
 	PROP_BUFFER_USED,
 	PROP_INPUT,
 	PROP_OUTPUT,
-	PROP_LAST,
+	N_PROPERTIES,
 };
 
 /******************************************************************************
  * Globals
  *****************************************************************************/
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleCircularBuffer, purple_circular_buffer,
 		G_TYPE_OBJECT);
@@ -329,7 +329,7 @@ purple_circular_buffer_class_init(Purple
 		                     "The output pointer of the buffer",
 		                     G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 /******************************************************************************
diff --git a/libpurple/connection.c b/libpurple/connection.c
--- a/libpurple/connection.c
+++ b/libpurple/connection.c
@@ -90,10 +90,10 @@ enum {
 	PROP_ACCOUNT,
 	PROP_PASSWORD,
 	PROP_DISPLAY_NAME,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST] = {NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 static GList *connections = NULL;
 static GList *connections_connected = NULL;
@@ -947,7 +947,7 @@ purple_connection_class_init(PurpleConne
 		"Your name that appears to other people.", NULL,
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 gboolean
diff --git a/libpurple/contact.c b/libpurple/contact.c
--- a/libpurple/contact.c
+++ b/libpurple/contact.c
@@ -41,13 +41,13 @@ enum
 	PROP_0,
 	PROP_ALIAS,
 	PROP_PRIORITY_BUDDY,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
 /******************************************************************************
  * Globals
  *****************************************************************************/
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleMetaContact, purple_meta_contact,
 		PURPLE_TYPE_COUNTING_NODE);
@@ -345,7 +345,7 @@ static void purple_meta_contact_class_in
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS
 	);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 PurpleMetaContact *
diff --git a/libpurple/countingnode.c b/libpurple/countingnode.c
--- a/libpurple/countingnode.c
+++ b/libpurple/countingnode.c
@@ -40,10 +40,10 @@ enum
 	PROP_TOTAL_SIZE,
 	PROP_CURRENT_SIZE,
 	PROP_ONLINE_COUNT,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleCountingNode, purple_counting_node,
 		PURPLE_TYPE_BLIST_NODE);
@@ -244,6 +244,6 @@ purple_counting_node_class_init(PurpleCo
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS
 	);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
diff --git a/libpurple/group.c b/libpurple/group.c
--- a/libpurple/group.c
+++ b/libpurple/group.c
@@ -41,15 +41,15 @@ struct _PurpleGroupPrivate {
 /* Group property enums */
 enum
 {
-	GROUP_PROP_0,
-	GROUP_PROP_NAME,
-	GROUP_PROP_LAST
+	PROP_0,
+	PROP_NAME,
+	N_PROPERTIES,
 };
 
 /******************************************************************************
  * Globals
  *****************************************************************************/
-static GParamSpec *properties[GROUP_PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleGroup, purple_group,
 		PURPLE_TYPE_COUNTING_NODE);
@@ -176,7 +176,7 @@ void purple_group_set_name(PurpleGroup *
 		old_name = priv->name;
 		priv->name = new_name;
 
-		g_object_notify_by_pspec(G_OBJECT(source), properties[GROUP_PROP_NAME]);
+		g_object_notify_by_pspec(G_OBJECT(source), properties[PROP_NAME]);
 	}
 
 	/* Save our changes */
@@ -236,7 +236,7 @@ void purple_group_set_name(PurpleGroup *
 	g_list_free(moved_buddies);
 	g_free(old_name);
 
-	g_object_notify_by_pspec(G_OBJECT(source), properties[GROUP_PROP_NAME]);
+	g_object_notify_by_pspec(G_OBJECT(source), properties[PROP_NAME]);
 }
 
 const char *purple_group_get_name(PurpleGroup *group) {
@@ -260,7 +260,7 @@ purple_group_set_property(GObject *obj, 
 	PurpleGroupPrivate *priv = purple_group_get_instance_private(group);
 
 	switch (param_id) {
-		case GROUP_PROP_NAME:
+		case PROP_NAME:
 			if (priv->is_constructed)
 				purple_group_set_name(group, g_value_get_string(value));
 			else
@@ -281,7 +281,7 @@ purple_group_get_property(GObject *obj, 
 	PurpleGroup *group = PURPLE_GROUP(obj);
 
 	switch (param_id) {
-		case GROUP_PROP_NAME:
+		case PROP_NAME:
 			g_value_set_string(value, purple_group_get_name(group));
 			break;
 		default:
@@ -332,7 +332,7 @@ purple_group_class_init(PurpleGroupClass
 	obj_class->get_property = purple_group_get_property;
 	obj_class->set_property = purple_group_set_property;
 
-	properties[GROUP_PROP_NAME] = g_param_spec_string(
+	properties[PROP_NAME] = g_param_spec_string(
 		"name",
 		"Name",
 		"Name of the group.",
@@ -340,7 +340,7 @@ purple_group_class_init(PurpleGroupClass
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS
 	);
 
-	g_object_class_install_properties(obj_class, GROUP_PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 PurpleGroup *
diff --git a/libpurple/image.c b/libpurple/image.c
--- a/libpurple/image.c
+++ b/libpurple/image.c
@@ -39,10 +39,10 @@ enum {
 	PROP_PATH,
 	PROP_CONTENTS,
 	PROP_SIZE,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleImage, purple_image, G_TYPE_OBJECT);
 
@@ -165,7 +165,7 @@ purple_image_class_init(PurpleImageClass
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS
 	);
 
-	g_object_class_install_properties(gobj_class, PROP_LAST, properties);
+	g_object_class_install_properties(gobj_class, N_PROPERTIES, properties);
 }
 
 /******************************************************************************
diff --git a/libpurple/media.c b/libpurple/media.c
--- a/libpurple/media.c
+++ b/libpurple/media.c
@@ -91,17 +91,17 @@ static void purple_media_codecs_changed_
 
 
 enum {
-	S_ERROR,
-	CANDIDATES_PREPARED,
-	CODECS_CHANGED,
-	LEVEL,
-	NEW_CANDIDATE,
-	STATE_CHANGED,
-	STREAM_INFO,
-	CANDIDATE_PAIR_ESTABLISHED,
-	LAST_SIGNAL
+	SIG_ERROR,
+	SIG_CANDIDATES_PREPARED,
+	SIG_CODECS_CHANGED,
+	SIG_LEVEL,
+	SIG_NEW_CANDIDATE,
+	SIG_STATE_CHANGED,
+	SIG_STREAM_INFO,
+	SIG_CANDIDATE_PAIR_ESTABLISHED,
+	N_SIGNALS,
 };
-static guint purple_media_signals[LAST_SIGNAL] = {0};
+static guint signals[N_SIGNALS] = {0, };
 
 enum {
 	PROP_0,
@@ -111,6 +111,7 @@ enum {
 	PROP_CONFERENCE_TYPE,
 	PROP_INITIATOR,
 	PROP_PROTOCOL_DATA,
+	N_PROPERTIES,
 };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleMedia, purple_media, G_TYPE_OBJECT);
@@ -174,33 +175,40 @@ purple_media_class_init (PurpleMediaClas
 			"Data the protocol set on the media session.",
 			G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-	purple_media_signals[S_ERROR] = g_signal_new("error", G_TYPE_FROM_CLASS(klass),
+	signals[SIG_ERROR] = g_signal_new("error", G_TYPE_FROM_CLASS(klass),
 					 G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 					 G_TYPE_NONE, 1, G_TYPE_STRING);
-	purple_media_signals[CANDIDATES_PREPARED] = g_signal_new("candidates-prepared", G_TYPE_FROM_CLASS(klass),
+	signals[SIG_CANDIDATES_PREPARED] = g_signal_new("candidates-prepared",
+					 G_TYPE_FROM_CLASS(klass),
 					 G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 					 G_TYPE_NONE, 2, G_TYPE_STRING,
 					 G_TYPE_STRING);
-	purple_media_signals[CODECS_CHANGED] = g_signal_new("codecs-changed", G_TYPE_FROM_CLASS(klass),
+	signals[SIG_CODECS_CHANGED] = g_signal_new("codecs-changed",
+					 G_TYPE_FROM_CLASS(klass),
 					 G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 					 G_TYPE_NONE, 1, G_TYPE_STRING);
-	purple_media_signals[LEVEL] = g_signal_new("level", G_TYPE_FROM_CLASS(klass),
+	signals[SIG_LEVEL] = g_signal_new("level",
+					 G_TYPE_FROM_CLASS(klass),
 					 G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 					 G_TYPE_NONE, 3, G_TYPE_STRING,
 					 G_TYPE_STRING, G_TYPE_DOUBLE);
-	purple_media_signals[NEW_CANDIDATE] = g_signal_new("new-candidate", G_TYPE_FROM_CLASS(klass),
+	signals[SIG_NEW_CANDIDATE] = g_signal_new("new-candidate",
+					 G_TYPE_FROM_CLASS(klass),
 					 G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 					 G_TYPE_NONE, 3, G_TYPE_POINTER,
 					 G_TYPE_POINTER, PURPLE_MEDIA_TYPE_CANDIDATE);
-	purple_media_signals[STATE_CHANGED] = g_signal_new("state-changed", G_TYPE_FROM_CLASS(klass),
+	signals[SIG_STATE_CHANGED] = g_signal_new("state-changed",
+					 G_TYPE_FROM_CLASS(klass),
 					 G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 					 G_TYPE_NONE, 3, PURPLE_MEDIA_TYPE_STATE,
 					 G_TYPE_STRING, G_TYPE_STRING);
-	purple_media_signals[STREAM_INFO] = g_signal_new("stream-info", G_TYPE_FROM_CLASS(klass),
+	signals[SIG_STREAM_INFO] = g_signal_new("stream-info",
+					 G_TYPE_FROM_CLASS(klass),
 					 G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 					 G_TYPE_NONE, 4, PURPLE_MEDIA_TYPE_INFO_TYPE,
 					 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN);
-	purple_media_signals[CANDIDATE_PAIR_ESTABLISHED] = g_signal_new("candidate-pair-established", G_TYPE_FROM_CLASS(klass),
+	signals[SIG_CANDIDATE_PAIR_ESTABLISHED] = g_signal_new("candidate-pair-established",
+					 G_TYPE_FROM_CLASS(klass),
 					 G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 					 G_TYPE_NONE, 4, G_TYPE_POINTER, G_TYPE_POINTER,
 					 PURPLE_MEDIA_TYPE_CANDIDATE, PURPLE_MEDIA_TYPE_CANDIDATE);
@@ -520,7 +528,7 @@ purple_media_error(PurpleMedia *media, c
 	va_end(args);
 
 	purple_debug_error("media", "%s\n", message);
-	g_signal_emit(media, purple_media_signals[S_ERROR], 0, message);
+	g_signal_emit(media, signals[SIG_ERROR], 0, message);
 
 	g_free(message);
 }
@@ -539,7 +547,7 @@ purple_media_end(PurpleMedia *media,
 	for (; iter; iter = g_list_delete_link(iter, iter)) {
 		PurpleMediaStream *stream = iter->data;
 
-		g_signal_emit(media, purple_media_signals[STATE_CHANGED],
+		g_signal_emit(media, signals[SIG_STATE_CHANGED],
 				0, PURPLE_MEDIA_STATE_END,
 				stream->session->id, stream->participant);
 
@@ -573,7 +581,7 @@ purple_media_end(PurpleMedia *media,
 	for (; sessions; sessions = g_list_delete_link(sessions, sessions)) {
 		PurpleMediaSession *session = sessions->data;
 
-		g_signal_emit(media, purple_media_signals[STATE_CHANGED],
+		g_signal_emit(media, signals[SIG_STATE_CHANGED],
 				0, PURPLE_MEDIA_STATE_END,
 				session->id, NULL);
 
@@ -604,7 +612,7 @@ purple_media_end(PurpleMedia *media,
 		GList *link = g_list_find_custom(media->priv->participants,
 				participant, (GCompareFunc)strcmp);
 
-		g_signal_emit(media, purple_media_signals[STATE_CHANGED],
+		g_signal_emit(media, signals[SIG_STATE_CHANGED],
 				0, PURPLE_MEDIA_STATE_END,
 				NULL, participant);
 
@@ -620,7 +628,7 @@ purple_media_end(PurpleMedia *media,
 	/* Free the conference if no sessions left */
 	if (media->priv->sessions != NULL &&
 			g_hash_table_size(media->priv->sessions) == 0) {
-		g_signal_emit(media, purple_media_signals[STATE_CHANGED],
+		g_signal_emit(media, signals[SIG_STATE_CHANGED],
 				0, PURPLE_MEDIA_STATE_END,
 				NULL, NULL);
 		g_object_unref(media);
@@ -648,8 +656,7 @@ purple_media_stream_info(PurpleMedia *me
 
 			stream->accepted = TRUE;
 
-			g_signal_emit(media,
-					purple_media_signals[STREAM_INFO],
+			g_signal_emit(media, signals[SIG_STREAM_INFO],
 					0, type, stream->session->id,
 					stream->participant, local);
 
@@ -671,9 +678,8 @@ purple_media_stream_info(PurpleMedia *me
 			PurpleMediaSession *session = sessions->data;
 
 			if (purple_media_accepted(media, session->id, NULL)) {
-				g_signal_emit(media, purple_media_signals[
-						STREAM_INFO], 0,
-						PURPLE_MEDIA_INFO_ACCEPT,
+				g_signal_emit(media, signals[SIG_STREAM_INFO],
+						0, PURPLE_MEDIA_INFO_ACCEPT,
 						session->id, NULL, local);
 			}
 		}
@@ -684,9 +690,8 @@ purple_media_stream_info(PurpleMedia *me
 			gchar *participant = participants->data;
 
 			if (purple_media_accepted(media, NULL, participant)) {
-				g_signal_emit(media, purple_media_signals[
-						STREAM_INFO], 0,
-						PURPLE_MEDIA_INFO_ACCEPT,
+				g_signal_emit(media, signals[SIG_STREAM_INFO],
+						0, PURPLE_MEDIA_INFO_ACCEPT,
 						NULL, participant, local);
 			}
 
@@ -695,8 +700,7 @@ purple_media_stream_info(PurpleMedia *me
 
 		/* Emit conference acceptance */
 		if (purple_media_accepted(media, NULL, NULL)) {
-			g_signal_emit(media,
-					purple_media_signals[STREAM_INFO],
+			g_signal_emit(media, signals[SIG_STREAM_INFO],
 					0, PURPLE_MEDIA_INFO_ACCEPT,
 					NULL, NULL, local);
 		}
@@ -714,8 +718,7 @@ purple_media_stream_info(PurpleMedia *me
 		for (; streams; streams = g_list_delete_link(streams, streams)) {
 			PurpleMediaStream *stream = streams->data;
 
-			g_signal_emit(media,
-					purple_media_signals[STREAM_INFO],
+			g_signal_emit(media, signals[SIG_STREAM_INFO],
 					0, type, stream->session->id,
 					stream->participant, local);
 		}
@@ -737,8 +740,8 @@ purple_media_stream_info(PurpleMedia *me
 					sessions, sessions)) {
 				PurpleMediaSession *session = sessions->data;
 
-				g_signal_emit(media, purple_media_signals[
-						STREAM_INFO], 0, type,
+				g_signal_emit(media, signals[SIG_STREAM_INFO],
+						0, type,
 						session->id, NULL, local);
 			}
 
@@ -747,14 +750,13 @@ purple_media_stream_info(PurpleMedia *me
 					g_list_next(participants)) {
 				gchar *participant = participants->data;
 
-				g_signal_emit(media, purple_media_signals[
-						STREAM_INFO], 0, type,
+				g_signal_emit(media, signals[SIG_STREAM_INFO],
+						0, type,
 						NULL, participant, local);
 			}
 
 			/* Emit for conference */
-			g_signal_emit(media,
-					purple_media_signals[STREAM_INFO],
+			g_signal_emit(media, signals[SIG_STREAM_INFO],
 					0, type, NULL, NULL, local);
 		} else if (session_id != NULL) {
 			/* Emit just the specific session */
@@ -767,8 +769,8 @@ purple_media_stream_info(PurpleMedia *me
 						"Couldn't find session"
 						" to hangup/reject.\n");
 			} else {
-				g_signal_emit(media, purple_media_signals[
-						STREAM_INFO], 0, type,
+				g_signal_emit(media, signals[SIG_STREAM_INFO],
+						0, type,
 						session->id, NULL, local);
 			}
 		} else if (participant != NULL) {
@@ -779,8 +781,8 @@ purple_media_stream_info(PurpleMedia *me
 						"Couldn't find participant"
 						" to hangup/reject.\n");
 			} else {
-				g_signal_emit(media, purple_media_signals[
-						STREAM_INFO], 0, type, NULL,
+				g_signal_emit(media, signals[SIG_STREAM_INFO],
+						0, type, NULL,
 						participant, local);
 			}
 		}
@@ -789,7 +791,7 @@ purple_media_stream_info(PurpleMedia *me
 		return;
 	}
 
-	g_signal_emit(media, purple_media_signals[STREAM_INFO],
+	g_signal_emit(media, signals[SIG_STREAM_INFO],
 			0, type, session_id, participant, local);
 }
 
@@ -839,7 +841,7 @@ purple_media_new_local_candidate_cb(G_GN
 	purple_media_insert_local_candidate(session, participant,
 			purple_media_candidate_copy(candidate));
 
-	g_signal_emit(session->media, purple_media_signals[NEW_CANDIDATE],
+	g_signal_emit(session->media, signals[SIG_NEW_CANDIDATE],
 		      0, session->id, participant, candidate);
 }
 
@@ -854,7 +856,7 @@ purple_media_candidates_prepared_cb(G_GN
 	stream_data = purple_media_get_stream(media, sess_id, name);
 	stream_data->candidates_prepared = TRUE;
 
-	g_signal_emit(media, purple_media_signals[CANDIDATES_PREPARED],
+	g_signal_emit(media, signals[SIG_CANDIDATES_PREPARED],
 			0, sess_id, name);
 }
 
@@ -910,7 +912,7 @@ purple_media_candidate_pair_established_
 			purple_media_candidate_copy(
 			remote_candidate));
 
-	g_signal_emit(media, purple_media_signals[CANDIDATE_PAIR_ESTABLISHED],
+	g_signal_emit(media, signals[SIG_CANDIDATE_PAIR_ESTABLISHED],
 		0, sess_id, name, local_candidate, remote_candidate);
 	purple_debug_info("media", "candidate pair established\n");
 }
@@ -919,7 +921,7 @@ static void
 purple_media_codecs_changed_cb(G_GNUC_UNUSED PurpleMediaBackend *backend,
 		const gchar *sess_id, PurpleMedia *media)
 {
-	g_signal_emit(media, purple_media_signals[CODECS_CHANGED], 0, sess_id);
+	g_signal_emit(media, signals[SIG_CODECS_CHANGED], 0, sess_id);
 }
 
 gboolean
@@ -948,7 +950,7 @@ purple_media_add_stream(PurpleMedia *med
 		session->initiator = initiator;
 
 		purple_media_add_session(media, session);
-		g_signal_emit(media, purple_media_signals[STATE_CHANGED],
+		g_signal_emit(media, signals[SIG_STATE_CHANGED],
 				0, PURPLE_MEDIA_STATE_NEW,
 				session->id, NULL);
 	}
@@ -958,14 +960,14 @@ purple_media_add_stream(PurpleMedia *med
 		media->priv->participants = g_list_prepend(
 				media->priv->participants, g_strdup(who));
 
-		g_signal_emit(media, purple_media_signals[STATE_CHANGED], 0,
+		g_signal_emit(media, signals[SIG_STATE_CHANGED], 0,
 				PURPLE_MEDIA_STATE_NEW, NULL, who);
 	}
 
 	if (purple_media_get_stream(media, sess_id, who) == NULL) {
 		purple_media_insert_stream(session, who, initiator);
 
-		g_signal_emit(media, purple_media_signals[STATE_CHANGED],
+		g_signal_emit(media, signals[SIG_STATE_CHANGED],
 				0, PURPLE_MEDIA_STATE_NEW,
 				session->id, who);
 	}
diff --git a/libpurple/media/backend-iface.c b/libpurple/media/backend-iface.c
--- a/libpurple/media/backend-iface.c
+++ b/libpurple/media/backend-iface.c
@@ -22,15 +22,15 @@
 #include "backend-iface.h"
 
 enum {
-	S_ERROR,
-	CANDIDATES_PREPARED,
-	CODECS_CHANGED,
-	NEW_CANDIDATE,
-	ACTIVE_CANDIDATE_PAIR,
-	LAST_SIGNAL
+	SIG_ERROR,
+	SIG_CANDIDATES_PREPARED,
+	SIG_CODECS_CHANGED,
+	SIG_NEW_CANDIDATE,
+	SIG_ACTIVE_CANDIDATE_PAIR,
+	N_SIGNALS,
 };
 
-static guint purple_media_backend_signals[LAST_SIGNAL] = {0};
+static guint signals[N_SIGNALS] = {0, };
 
 static void
 purple_media_backend_base_init(gpointer iface)
@@ -56,29 +56,25 @@ purple_media_backend_base_init(gpointer 
 			PURPLE_TYPE_MEDIA,
 			G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE |
 			G_PARAM_STATIC_STRINGS));
-	purple_media_backend_signals[S_ERROR] =
-			g_signal_new("error", G_TYPE_FROM_CLASS(iface),
+	signals[SIG_ERROR] = g_signal_new("error",
+			G_TYPE_FROM_CLASS(iface),
 			G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 			G_TYPE_NONE, 1, G_TYPE_STRING);
-	purple_media_backend_signals[CANDIDATES_PREPARED] =
-			g_signal_new("candidates-prepared",
+	signals[SIG_CANDIDATES_PREPARED] = g_signal_new("candidates-prepared",
 			G_TYPE_FROM_CLASS(iface),
 			G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 			G_TYPE_NONE, 2, G_TYPE_STRING,
 			G_TYPE_STRING);
-	purple_media_backend_signals[CODECS_CHANGED] =
-			g_signal_new("codecs-changed",
+	signals[SIG_CODECS_CHANGED] = g_signal_new("codecs-changed",
 			G_TYPE_FROM_CLASS(iface),
 			G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 			G_TYPE_NONE, 1, G_TYPE_STRING);
-	purple_media_backend_signals[NEW_CANDIDATE] =
-			g_signal_new("new-candidate",
+	signals[SIG_NEW_CANDIDATE] = g_signal_new("new-candidate",
 			G_TYPE_FROM_CLASS(iface),
 			G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 			G_TYPE_NONE, 3, G_TYPE_POINTER,
 			G_TYPE_POINTER, PURPLE_MEDIA_TYPE_CANDIDATE);
-	purple_media_backend_signals[ACTIVE_CANDIDATE_PAIR] =
-			g_signal_new("active-candidate-pair",
+	signals[SIG_ACTIVE_CANDIDATE_PAIR] = g_signal_new("active-candidate-pair",
 			G_TYPE_FROM_CLASS(iface),
 			G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
 			G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING,
diff --git a/libpurple/media/candidate.c b/libpurple/media/candidate.c
--- a/libpurple/media/candidate.c
+++ b/libpurple/media/candidate.c
@@ -49,7 +49,7 @@ typedef struct
 } PurpleMediaCandidatePrivate;
 
 enum {
-	PROP_CANDIDATE_0,
+	PROP_0,
 	PROP_FOUNDATION,
 	PROP_COMPONENT_ID,
 	PROP_IP,
@@ -62,6 +62,7 @@ enum {
 	PROP_USERNAME,
 	PROP_PASSWORD,
 	PROP_TTL,
+	N_PROPERTIES,
 };
 
 G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleMediaCandidate, purple_media_candidate,
diff --git a/libpurple/media/codec.c b/libpurple/media/codec.c
--- a/libpurple/media/codec.c
+++ b/libpurple/media/codec.c
@@ -37,17 +37,17 @@ typedef struct
 } PurpleMediaCodecPrivate;
 
 enum {
-	PROP_CODEC_0,
+	PROP_0,
 	PROP_ID,
 	PROP_ENCODING_NAME,
 	PROP_MEDIA_TYPE,
 	PROP_CLOCK_RATE,
 	PROP_CHANNELS,
 	PROP_OPTIONAL_PARAMS,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleMediaCodec, purple_media_codec,
                                  G_TYPE_OBJECT)
@@ -194,7 +194,7 @@ purple_media_codec_class_init(PurpleMedi
 			"A list of optional parameters for the codec.",
 			G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(gobject_class, PROP_LAST, properties);
+	g_object_class_install_properties(gobject_class, N_PROPERTIES, properties);
 }
 
 PurpleMediaCodec *
diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c
--- a/libpurple/mediamanager.c
+++ b/libpurple/mediamanager.c
@@ -112,13 +112,13 @@ static void purple_media_manager_registe
 
 
 enum {
-	INIT_MEDIA,
-	INIT_PRIVATE_MEDIA,
-	UI_CAPS_CHANGED,
-	ELEMENTS_CHANGED,
-	LAST_SIGNAL
+	SIG_INIT_MEDIA,
+	SIG_INIT_PRIVATE_MEDIA,
+	SIG_UI_CAPS_CHANGED,
+	SIG_ELEMENTS_CHANGED,
+	N_SIGNALS,
 };
-static guint purple_media_manager_signals[LAST_SIGNAL] = {0};
+static guint signals[N_SIGNALS] = {0, };
 
 G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleMediaManager, purple_media_manager,
                                  G_TYPE_OBJECT);
@@ -130,30 +130,28 @@ purple_media_manager_class_init (PurpleM
 
 	gobject_class->finalize = purple_media_manager_finalize;
 
-	purple_media_manager_signals[INIT_MEDIA] = g_signal_new ("init-media",
+	signals[SIG_INIT_MEDIA] = g_signal_new("init-media",
 		G_TYPE_FROM_CLASS (klass),
 		G_SIGNAL_RUN_LAST,
 		0, NULL, NULL, NULL,
 		G_TYPE_BOOLEAN, 3, PURPLE_TYPE_MEDIA,
 		G_TYPE_POINTER, G_TYPE_STRING);
 
-	purple_media_manager_signals[INIT_PRIVATE_MEDIA] =
-		g_signal_new ("init-private-media",
+	signals[SIG_INIT_PRIVATE_MEDIA] = g_signal_new("init-private-media",
 			G_TYPE_FROM_CLASS (klass),
 			G_SIGNAL_RUN_LAST,
 			0, NULL, NULL, NULL,
 			G_TYPE_BOOLEAN, 3, PURPLE_TYPE_MEDIA,
 			G_TYPE_POINTER, G_TYPE_STRING);
 
-	purple_media_manager_signals[UI_CAPS_CHANGED] = g_signal_new ("ui-caps-changed",
+	signals[SIG_UI_CAPS_CHANGED] = g_signal_new("ui-caps-changed",
 		G_TYPE_FROM_CLASS (klass),
 		G_SIGNAL_RUN_LAST,
 		0, NULL, NULL, NULL,
 		G_TYPE_NONE, 2, PURPLE_MEDIA_TYPE_CAPS,
 		PURPLE_MEDIA_TYPE_CAPS);
 
-	purple_media_manager_signals[ELEMENTS_CHANGED] =
-		g_signal_new("elements-changed",
+	signals[SIG_ELEMENTS_CHANGED] = g_signal_new("elements-changed",
 			G_TYPE_FROM_CLASS(klass),
 			G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
 			0, NULL, NULL, NULL,
@@ -296,8 +294,8 @@ create_media(PurpleMediaManager *manager
 			     NULL));
 
 	signal_id = private ?
-			purple_media_manager_signals[INIT_PRIVATE_MEDIA] :
-			purple_media_manager_signals[INIT_MEDIA];
+			signals[SIG_INIT_PRIVATE_MEDIA] :
+			signals[SIG_INIT_MEDIA];
 
 	if (g_signal_has_handler_pending(manager, signal_id, 0, FALSE)) {
 		gboolean signal_ret;
@@ -1195,9 +1193,7 @@ purple_media_manager_register_element(Pu
 
 	detail = element_info_to_detail(info);
 	if (detail != 0) {
-		g_signal_emit(manager,
-				purple_media_manager_signals[ELEMENTS_CHANGED],
-				detail);
+		g_signal_emit(manager, signals[SIG_ELEMENTS_CHANGED], detail);
 	}
 
 	return TRUE;
@@ -1239,9 +1235,7 @@ purple_media_manager_unregister_element(
 	g_object_unref(info);
 
 	if (detail != 0) {
-		g_signal_emit(manager,
-				purple_media_manager_signals[ELEMENTS_CHANGED],
-				detail);
+		g_signal_emit(manager, signals[SIG_ELEMENTS_CHANGED], detail);
 	}
 
 	return TRUE;
@@ -1529,9 +1523,7 @@ purple_media_manager_set_ui_caps(PurpleM
 	manager->priv->ui_caps = caps;
 
 	if (caps != oldcaps) {
-		g_signal_emit(manager,
-				purple_media_manager_signals[UI_CAPS_CHANGED],
-				0, caps, oldcaps);
+		g_signal_emit(manager, signals[SIG_UI_CAPS_CHANGED], 0, caps, oldcaps);
 	}
 }
 
@@ -2238,6 +2230,7 @@ enum {
 	PROP_NAME,
 	PROP_TYPE,
 	PROP_CREATE_CB,
+	N_PROPERTIES,
 };
 
 G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleMediaElementInfo,
diff --git a/libpurple/protocols/jabber/jingle/content.c b/libpurple/protocols/jabber/jingle/content.c
--- a/libpurple/protocols/jabber/jingle/content.c
+++ b/libpurple/protocols/jabber/jingle/content.c
@@ -52,10 +52,10 @@ enum {
 	PROP_SENDERS,
 	PROP_TRANSPORT,
 	PROP_PENDING_TRANSPORT,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_DYNAMIC_TYPE_EXTENDED(
 	JingleContent,
@@ -296,7 +296,7 @@ jingle_content_class_init (JingleContent
 			JINGLE_TYPE_TRANSPORT,
 			G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 /******************************************************************************
diff --git a/libpurple/protocols/jabber/jingle/iceudp.c b/libpurple/protocols/jabber/jingle/iceudp.c
--- a/libpurple/protocols/jabber/jingle/iceudp.c
+++ b/libpurple/protocols/jabber/jingle/iceudp.c
@@ -46,10 +46,10 @@ enum {
 	PROP_0,
 	PROP_LOCAL_CANDIDATES,
 	PROP_REMOTE_CANDIDATES,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_DYNAMIC_TYPE_EXTENDED(
 	JingleIceUdp,
@@ -416,7 +416,7 @@ jingle_iceudp_class_init (JingleIceUdpCl
 			"The remote candidates for this transport.",
 			G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 /******************************************************************************
diff --git a/libpurple/protocols/jabber/jingle/rawudp.c b/libpurple/protocols/jabber/jingle/rawudp.c
--- a/libpurple/protocols/jabber/jingle/rawudp.c
+++ b/libpurple/protocols/jabber/jingle/rawudp.c
@@ -46,9 +46,9 @@ enum {
 	PROP_0,
 	PROP_LOCAL_CANDIDATES,
 	PROP_REMOTE_CANDIDATES,
-	PROP_LAST
+	N_PROPERTIES,
 };
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_DYNAMIC_TYPE_EXTENDED(
 	JingleRawUdp,
@@ -318,7 +318,7 @@ jingle_rawudp_class_init (JingleRawUdpCl
 			"The remote candidates for this transport.",
 			G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 /******************************************************************************
diff --git a/libpurple/protocols/jabber/jingle/rtp.c b/libpurple/protocols/jabber/jingle/rtp.c
--- a/libpurple/protocols/jabber/jingle/rtp.c
+++ b/libpurple/protocols/jabber/jingle/rtp.c
@@ -58,10 +58,10 @@ enum {
 	PROP_0,
 	PROP_MEDIA_TYPE,
 	PROP_SSRC,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_DYNAMIC_TYPE_EXTENDED(
 	JingleRtp,
@@ -776,7 +776,7 @@ jingle_rtp_class_init (JingleRtpClass *k
 			NULL,
 			G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 /******************************************************************************
diff --git a/libpurple/protocols/jabber/jingle/session.c b/libpurple/protocols/jabber/jingle/session.c
--- a/libpurple/protocols/jabber/jingle/session.c
+++ b/libpurple/protocols/jabber/jingle/session.c
@@ -59,10 +59,10 @@ enum {
 	PROP_STATE,
 	PROP_CONTENTS,
 	PROP_PENDING_CONTENTS,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_DYNAMIC_TYPE_EXTENDED(
 	JingleSession,
@@ -303,7 +303,7 @@ jingle_session_class_init (JingleSession
 			"The pending contents contained within this session",
 			G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 /******************************************************************************
diff --git a/libpurple/purpleaccount.c b/libpurple/purpleaccount.c
--- a/libpurple/purpleaccount.c
+++ b/libpurple/purpleaccount.c
@@ -108,7 +108,7 @@ enum {
 	SIG_SETTING_CHANGED,
 	SIG_CONNECTED,
 	SIG_DISCONNECTED,
-	N_SIGNALS
+	N_SIGNALS,
 };
 static guint signals[N_SIGNALS] = {0, };
 
diff --git a/libpurple/purpleaccountpresence.c b/libpurple/purpleaccountpresence.c
--- a/libpurple/purpleaccountpresence.c
+++ b/libpurple/purpleaccountpresence.c
@@ -36,9 +36,9 @@ struct _PurpleAccountPresence {
 enum {
 	PROP_0,
 	PROP_ACCOUNT,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 /******************************************************************************
  * Helpers
diff --git a/libpurple/purpleaddcontactrequest.c b/libpurple/purpleaddcontactrequest.c
--- a/libpurple/purpleaddcontactrequest.c
+++ b/libpurple/purpleaddcontactrequest.c
@@ -33,7 +33,7 @@ struct _PurpleAddContactRequest {
 
 enum {
 	SIG_ADD,
-	N_SIGNALS
+	N_SIGNALS,
 };
 static guint signals[N_SIGNALS] = {0, };
 
diff --git a/libpurple/purpleattachment.c b/libpurple/purpleattachment.c
--- a/libpurple/purpleattachment.c
+++ b/libpurple/purpleattachment.c
@@ -46,7 +46,7 @@ enum {
 	PROP_SIZE,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 /******************************************************************************
  * Private Setters
diff --git a/libpurple/purpleauthorizationrequest.c b/libpurple/purpleauthorizationrequest.c
--- a/libpurple/purpleauthorizationrequest.c
+++ b/libpurple/purpleauthorizationrequest.c
@@ -35,7 +35,7 @@ struct _PurpleAuthorizationRequest {
 enum {
 	SIG_ACCEPTED,
 	SIG_DENIED,
-	N_SIGNALS
+	N_SIGNALS,
 };
 static guint signals[N_SIGNALS] = {0, };
 
diff --git a/libpurple/purplebuddypresence.c b/libpurple/purplebuddypresence.c
--- a/libpurple/purplebuddypresence.c
+++ b/libpurple/purplebuddypresence.c
@@ -38,9 +38,9 @@ struct _PurpleBuddyPresence {
 enum {
 	PROP_0,
 	PROP_BUDDY,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 /******************************************************************************
  * Helpers
diff --git a/libpurple/purplechatconversation.c b/libpurple/purplechatconversation.c
--- a/libpurple/purplechatconversation.c
+++ b/libpurple/purplechatconversation.c
@@ -44,16 +44,16 @@ enum {
 	PROP_0,
 	PROP_CHAT_ID,
 	PROP_LEFT,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 enum {
 	SIG_USER_JOINED,
 	SIG_USER_LEFT,
-	N_SIGNALS
+	N_SIGNALS,
 };
-static guint signals[N_SIGNALS] = { 0, };
+static guint signals[N_SIGNALS] = {0, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleChatConversation, purple_chat_conversation,
                            PURPLE_TYPE_CONVERSATION);
diff --git a/libpurple/purplecontact.c b/libpurple/purplecontact.c
--- a/libpurple/purplecontact.c
+++ b/libpurple/purplecontact.c
@@ -29,7 +29,7 @@ struct _PurpleContact {
 enum {
 	PROP_0,
 	PROP_ACCOUNT,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
diff --git a/libpurple/purplecontactinfo.c b/libpurple/purplecontactinfo.c
--- a/libpurple/purplecontactinfo.c
+++ b/libpurple/purplecontactinfo.c
@@ -65,7 +65,7 @@ enum {
 	PROP_PERMISSION,
 	PROP_SID,
 	PROP_NAME_FOR_DISPLAY,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
diff --git a/libpurple/purpleconversation.c b/libpurple/purpleconversation.c
--- a/libpurple/purpleconversation.c
+++ b/libpurple/purpleconversation.c
@@ -86,9 +86,9 @@ enum {
 	PROP_TAGS,
 	PROP_MEMBERS,
 	PROP_MESSAGES,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 enum {
 	SIG_MEMBER_ADDED,
diff --git a/libpurple/purpleconversationmember.c b/libpurple/purpleconversationmember.c
--- a/libpurple/purpleconversationmember.c
+++ b/libpurple/purpleconversationmember.c
@@ -35,7 +35,7 @@ enum {
 	PROP_CONTACT_INFO,
 	PROP_TAGS,
 	PROP_TYPING_STATE,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
diff --git a/libpurple/purplefiletransfermanager.c b/libpurple/purplefiletransfermanager.c
--- a/libpurple/purplefiletransfermanager.c
+++ b/libpurple/purplefiletransfermanager.c
@@ -25,7 +25,7 @@ enum {
 	SIG_TRANSFER_CHANGED,
 	N_SIGNALS,
 };
-static guint signals[N_SIGNALS] = {};
+static guint signals[N_SIGNALS] = {0, };
 
 struct _PurpleFileTransferManager {
 	GObject parent;
diff --git a/libpurple/purpleimconversation.c b/libpurple/purpleimconversation.c
--- a/libpurple/purpleimconversation.c
+++ b/libpurple/purpleimconversation.c
@@ -45,7 +45,7 @@ enum {
 	PROP_TYPING_STATE,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 #define SEND_TYPED_TIMEOUT_SECONDS 5
 
diff --git a/libpurple/purplemessage.c b/libpurple/purplemessage.c
--- a/libpurple/purplemessage.c
+++ b/libpurple/purplemessage.c
@@ -66,9 +66,9 @@ enum {
 	PROP_DELIVERED_AT,
 	PROP_EDITED,
 	PROP_EDITED_AT,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PurpleMessage, purple_message, G_TYPE_OBJECT)
 
diff --git a/libpurple/purplenotification.c b/libpurple/purplenotification.c
--- a/libpurple/purplenotification.c
+++ b/libpurple/purplenotification.c
@@ -43,7 +43,7 @@ struct _PurpleNotification {
 
 enum {
 	SIG_DELETED,
-	N_SIGNALS
+	N_SIGNALS,
 };
 static guint signals[N_SIGNALS] = {0, };
 
diff --git a/libpurple/purplenotificationmanager.c b/libpurple/purplenotificationmanager.c
--- a/libpurple/purplenotificationmanager.c
+++ b/libpurple/purplenotificationmanager.c
@@ -23,11 +23,11 @@
 #include "purpleprivate.h"
 
 enum {
-	PROP_ZERO,
+	PROP_0,
 	PROP_UNREAD_COUNT,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 enum {
 	SIG_ADDED,
@@ -36,7 +36,7 @@ enum {
 	SIG_UNREAD,
 	N_SIGNALS,
 };
-static guint signals[N_SIGNALS] = { 0, };
+static guint signals[N_SIGNALS] = {0, };
 
 struct _PurpleNotificationManager {
 	GObject parent;
diff --git a/libpurple/purpleperson.c b/libpurple/purpleperson.c
--- a/libpurple/purpleperson.c
+++ b/libpurple/purpleperson.c
@@ -47,7 +47,7 @@ enum {
 	PROP_TAGS,
 	PROP_NAME_FOR_DISPLAY,
 	PROP_PRIORITY_CONTACT_INFO,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
diff --git a/libpurple/purpleplugininfo.c b/libpurple/purpleplugininfo.c
--- a/libpurple/purpleplugininfo.c
+++ b/libpurple/purpleplugininfo.c
@@ -45,7 +45,7 @@ enum {
 	PROP_ACTION_MENU,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurplePluginInfo, purple_plugin_info,
                            GPLUGIN_TYPE_PLUGIN_INFO);
diff --git a/libpurple/purplepresence.c b/libpurple/purplepresence.c
--- a/libpurple/purplepresence.c
+++ b/libpurple/purplepresence.c
@@ -55,9 +55,9 @@ enum {
 	PROP_EMOJI,
 	PROP_MOBILE,
 	PROP_NOTIFICATIONS_DISABLED,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurplePresence, purple_presence, G_TYPE_OBJECT)
 
diff --git a/libpurple/purpleprotocol.c b/libpurple/purpleprotocol.c
--- a/libpurple/purpleprotocol.c
+++ b/libpurple/purpleprotocol.c
@@ -38,7 +38,7 @@ enum {
 	PROP_OPTIONS,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 typedef struct {
 	gchar *id;
diff --git a/libpurple/purpleproxyinfo.c b/libpurple/purpleproxyinfo.c
--- a/libpurple/purpleproxyinfo.c
+++ b/libpurple/purpleproxyinfo.c
@@ -37,7 +37,7 @@ enum {
     PROP_PORT,
     PROP_USERNAME,
     PROP_PASSWORD,
-    N_PROPERTIES
+    N_PROPERTIES,
 };
 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
diff --git a/libpurple/purpleroomlistroom.c b/libpurple/purpleroomlistroom.c
--- a/libpurple/purpleroomlistroom.c
+++ b/libpurple/purpleroomlistroom.c
@@ -33,7 +33,7 @@ enum {
 	PROP_DESCRIPTION,
 	PROP_CATEGORY,
 	PROP_USER_COUNT,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
diff --git a/libpurple/purplesavedpresence.c b/libpurple/purplesavedpresence.c
--- a/libpurple/purplesavedpresence.c
+++ b/libpurple/purplesavedpresence.c
@@ -52,9 +52,9 @@ enum {
 	PROP_PRIMITIVE,
 	PROP_MESSAGE,
 	PROP_EMOJI,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PurpleSavedPresence, purple_saved_presence, G_TYPE_OBJECT)
 
diff --git a/libpurple/purpletags.c b/libpurple/purpletags.c
--- a/libpurple/purpletags.c
+++ b/libpurple/purpletags.c
@@ -29,7 +29,7 @@ enum {
 	SIG_REMOVED,
 	N_SIGNALS,
 };
-static guint signals[N_SIGNALS];
+static guint signals[N_SIGNALS] = {0, };
 
 struct _PurpleTags {
 	GObject parent;
diff --git a/libpurple/purpleui.c b/libpurple/purpleui.c
--- a/libpurple/purpleui.c
+++ b/libpurple/purpleui.c
@@ -37,7 +37,7 @@ enum {
 	PROP_CLIENT_TYPE,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = {NULL,};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleUi, purple_ui, G_TYPE_OBJECT)
 
diff --git a/libpurple/purplewhiteboard.c b/libpurple/purplewhiteboard.c
--- a/libpurple/purplewhiteboard.c
+++ b/libpurple/purplewhiteboard.c
@@ -51,7 +51,7 @@ enum {
 	PROP_DRAW_LIST,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleWhiteboard, purple_whiteboard, G_TYPE_OBJECT)
 
diff --git a/libpurple/roomlist.c b/libpurple/roomlist.c
--- a/libpurple/roomlist.c
+++ b/libpurple/roomlist.c
@@ -43,10 +43,10 @@ enum
 	PROP_0,
 	PROP_ACCOUNT,
 	PROP_IN_PROGRESS,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 static PurpleRoomlistUiOps *ops = NULL;
 
 G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleRoomlist, purple_roomlist,
@@ -284,7 +284,7 @@ purple_roomlist_class_init(PurpleRoomlis
 				"Whether the room list is being fetched.", FALSE,
 				G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 PurpleRoomlist *purple_roomlist_new(PurpleAccount *account)
diff --git a/libpurple/status.c b/libpurple/status.c
--- a/libpurple/status.c
+++ b/libpurple/status.c
@@ -87,10 +87,10 @@ enum
 	PROP_STATUS_TYPE,
 	PROP_PRESENCE,
 	PROP_ACTIVE,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PurpleStatus, purple_status, G_TYPE_OBJECT)
 
@@ -1123,7 +1123,7 @@ purple_status_class_init(PurpleStatusCla
 				"Whether the status is active or not.", FALSE,
 				G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 PurpleStatus *
diff --git a/libpurple/xfer.c b/libpurple/xfer.c
--- a/libpurple/xfer.c
+++ b/libpurple/xfer.c
@@ -132,10 +132,10 @@ enum
 	PROP_STATUS,
 	PROP_PROGRESS,
 	PROP_VISIBLE,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST];
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 /* GObject signal enums */
 enum
@@ -146,9 +146,9 @@ enum
 	SIG_WRITE_LOCAL,
 	SIG_DATA_NOT_SENT,
 	SIG_ADD_THUMBNAIL,
-	SIG_LAST
+	N_SIGNALS,
 };
-static guint signals[SIG_LAST] = {0};
+static guint signals[N_SIGNALS] = {0, };
 
 G_DEFINE_TYPE_WITH_PRIVATE(PurpleXfer, purple_xfer, G_TYPE_OBJECT);
 
@@ -2279,7 +2279,7 @@ purple_xfer_class_init(PurpleXferClass *
 	        "Hint for UIs whether this transfer should be visible.", FALSE,
 	        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 
 	/* Signals */
 
diff --git a/pidgin/gtkmedia.c b/pidgin/gtkmedia.c
--- a/pidgin/gtkmedia.c
+++ b/pidgin/gtkmedia.c
@@ -109,7 +109,8 @@ static void pidgin_media_set_state(Pidgi
 enum {
 	PROP_0,
 	PROP_MEDIA,
-	PROP_SCREENNAME
+	PROP_SCREENNAME,
+	N_PROPERTIES,
 };
 
 static gboolean
diff --git a/pidgin/pidginaccountchooser.c b/pidgin/pidginaccountchooser.c
--- a/pidgin/pidginaccountchooser.c
+++ b/pidgin/pidginaccountchooser.c
@@ -38,10 +38,10 @@ enum
 	PROP_0,
 	PROP_ACCOUNT,
 	PROP_FILTER,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST] = {NULL};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 /******************************************************************************
  * Callbacks
@@ -120,7 +120,7 @@ pidgin_account_chooser_class_init(Pidgin
 	        GTK_TYPE_FILTER,
 	        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 
 	/* Widget template */
 	gtk_widget_class_set_template_from_resource(
diff --git a/pidgin/pidginaccountdisplay.c b/pidgin/pidginaccountdisplay.c
--- a/pidgin/pidginaccountdisplay.c
+++ b/pidgin/pidginaccountdisplay.c
@@ -37,10 +37,10 @@ struct _PidginAccountDisplay {
 enum {
 	PROP_0,
 	PROP_ACCOUNT,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST] = {NULL};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 /******************************************************************************
  * Callbacks
@@ -151,7 +151,7 @@ pidgin_account_display_class_init(Pidgin
 	        PURPLE_TYPE_ACCOUNT,
 	        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 
 	/* Widget template */
 	gtk_widget_class_set_template_from_resource(
diff --git a/pidgin/pidginaccountfilterprotocol.c b/pidgin/pidginaccountfilterprotocol.c
--- a/pidgin/pidginaccountfilterprotocol.c
+++ b/pidgin/pidginaccountfilterprotocol.c
@@ -33,9 +33,9 @@ struct _PidginAccountFilterProtocol {
 enum {
 	PROP_0,
 	PROP_PROTOCOL_ID,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 /******************************************************************************
  * Helpers
diff --git a/pidgin/pidginaccountmanagerrow.c b/pidgin/pidginaccountmanagerrow.c
--- a/pidgin/pidginaccountmanagerrow.c
+++ b/pidgin/pidginaccountmanagerrow.c
@@ -40,9 +40,9 @@ struct _PidginAccountManagerRow {
 enum {
 	PROP_0,
 	PROP_ACCOUNT,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 /******************************************************************************
  * Helpers
diff --git a/pidgin/pidginaccountrow.c b/pidgin/pidginaccountrow.c
--- a/pidgin/pidginaccountrow.c
+++ b/pidgin/pidginaccountrow.c
@@ -38,7 +38,7 @@ enum {
 	PROP_FILTER,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PidginAccountRow, pidgin_account_row, ADW_TYPE_COMBO_ROW)
 
diff --git a/pidgin/pidginconversation.c b/pidgin/pidginconversation.c
--- a/pidgin/pidginconversation.c
+++ b/pidgin/pidginconversation.c
@@ -37,7 +37,7 @@ enum {
 	PROP_CONVERSATION,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = {NULL,};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 struct _PidginConversation {
 	GtkBox parent;
diff --git a/pidgin/pidgindisplayitem.c b/pidgin/pidgindisplayitem.c
--- a/pidgin/pidgindisplayitem.c
+++ b/pidgin/pidgindisplayitem.c
@@ -50,7 +50,7 @@ enum {
 	PROP_CHILDREN,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = {NULL,};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PidginDisplayItem, pidgin_display_item, G_TYPE_OBJECT)
 
diff --git a/pidgin/pidgininvitedialog.c b/pidgin/pidgininvitedialog.c
--- a/pidgin/pidgininvitedialog.c
+++ b/pidgin/pidgininvitedialog.c
@@ -29,14 +29,14 @@ struct _PidginInviteDialog {
 };
 
 enum {
-	PROP_ZERO,
+	PROP_0,
 	PROP_CONTACT,
 	PROP_MESSAGE,
 	PROP_CONVERSATION,
 	N_PROPERTIES,
 };
 
-static GParamSpec *properties[N_PROPERTIES] = {0, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PidginInviteDialog, pidgin_invite_dialog, GTK_TYPE_DIALOG)
 
diff --git a/pidgin/pidginkeypad.c b/pidgin/pidginkeypad.c
--- a/pidgin/pidginkeypad.c
+++ b/pidgin/pidginkeypad.c
@@ -30,7 +30,7 @@ struct _PidginKeypad {
 
 enum {
 	SIG_PRESSED,
-	N_SIGNALS
+	N_SIGNALS,
 };
 static guint signals[N_SIGNALS] = {0, };
 
diff --git a/pidgin/pidginnotificationaddcontact.c b/pidgin/pidginnotificationaddcontact.c
--- a/pidgin/pidginnotificationaddcontact.c
+++ b/pidgin/pidginnotificationaddcontact.c
@@ -43,7 +43,7 @@ enum {
 	PROP_NOTIFICATION,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PidginNotificationAddContact,
                     pidgin_notification_add_contact, ADW_TYPE_ACTION_ROW)
diff --git a/pidgin/pidginnotificationauthorizationrequest.c b/pidgin/pidginnotificationauthorizationrequest.c
--- a/pidgin/pidginnotificationauthorizationrequest.c
+++ b/pidgin/pidginnotificationauthorizationrequest.c
@@ -44,7 +44,7 @@ enum {
 	PROP_NOTIFICATION,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PidginNotificationAuthorizationRequest,
                     pidgin_notification_authorization_request,
diff --git a/pidgin/pidginnotificationconnectionerror.c b/pidgin/pidginnotificationconnectionerror.c
--- a/pidgin/pidginnotificationconnectionerror.c
+++ b/pidgin/pidginnotificationconnectionerror.c
@@ -42,7 +42,7 @@ enum {
 	PROP_NOTIFICATION,
 	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PidginNotificationConnectionError,
                     pidgin_notification_connection_error, ADW_TYPE_ACTION_ROW)
diff --git a/pidgin/pidginpresenceicon.c b/pidgin/pidginpresenceicon.c
--- a/pidgin/pidginpresenceicon.c
+++ b/pidgin/pidginpresenceicon.c
@@ -38,9 +38,9 @@ enum {
 	PROP_PRESENCE,
 	PROP_FALLBACK,
 	PROP_ICON_SIZE,
-	N_PROPERTIES
+	N_PROPERTIES,
 };
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 G_DEFINE_FINAL_TYPE(PidginPresenceIcon, pidgin_presence_icon, GTK_TYPE_BOX)
 
diff --git a/pidgin/pidginprotocolchooser.c b/pidgin/pidginprotocolchooser.c
--- a/pidgin/pidginprotocolchooser.c
+++ b/pidgin/pidginprotocolchooser.c
@@ -24,7 +24,7 @@
 #include "pidginprotocolchooser.h"
 
 enum {
-	PROP_ZERO,
+	PROP_0,
 	PROP_PROTOCOL,
 	N_PROPERTIES,
 };
diff --git a/pidgin/plugins/disco/xmppdiscoservice.c b/pidgin/plugins/disco/xmppdiscoservice.c
--- a/pidgin/plugins/disco/xmppdiscoservice.c
+++ b/pidgin/plugins/disco/xmppdiscoservice.c
@@ -55,10 +55,10 @@ enum {
 	PROP_EXPANDED,
 	PROP_ICON_NAME,
 	PROP_CHILD_MODEL,
-	PROP_LAST
+	N_PROPERTIES,
 };
 
-static GParamSpec *properties[PROP_LAST] = {NULL};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
 
 /******************************************************************************
  * Helpers
@@ -274,7 +274,7 @@ xmpp_disco_service_class_init(XmppDiscoS
 	        G_TYPE_LIST_MODEL,
 	        G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
-	g_object_class_install_properties(obj_class, PROP_LAST, properties);
+	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 
 static void
