diff --git a/libpurple/connection.h b/libpurple/connection.h
--- a/libpurple/connection.h
+++ b/libpurple/connection.h
@@ -45,40 +45,6 @@
 #define PURPLE_ASSERT_CONNECTION_IS_VALID(gc) \
 	_purple_assert_connection_is_valid(gc, __FILE__, __LINE__)
 
-
-/**
- * PurpleConnectionFlags:
- * @PURPLE_CONNECTION_FLAG_HTML: Connection sends/receives in 'HTML'
- * @PURPLE_CONNECTION_FLAG_NO_BGCOLOR: Connection does not send/receive
- *                                     background colors
- * @PURPLE_CONNECTION_FLAG_AUTO_RESP: Send auto responses when away
- * @PURPLE_CONNECTION_FLAG_FORMATTING_WBFO: The text buffer must be formatted
- *                                          as a whole
- * @PURPLE_CONNECTION_FLAG_NO_NEWLINES: No new lines are allowed in outgoing
- *                                      messages
- * @PURPLE_CONNECTION_FLAG_NO_FONTSIZE: Connection does not send/receive font
- *                                      sizes
- * @PURPLE_CONNECTION_FLAG_NO_URLDESC: Connection does not support descriptions
- *                                     with links
- * @PURPLE_CONNECTION_FLAG_NO_IMAGES: Connection does not support sending of
- *                                    images
- *
- * Flags to change behavior of the client for a given connection.
- *
- * Since: 2.0
- */
-typedef enum /*< flags >*/
-{
-	PURPLE_CONNECTION_FLAG_HTML PURPLE_AVAILABLE_ENUMERATOR_IN_3_0 = 0x0001,
-	PURPLE_CONNECTION_FLAG_NO_BGCOLOR PURPLE_AVAILABLE_ENUMERATOR_IN_3_0 = 0x0002,
-	PURPLE_CONNECTION_FLAG_AUTO_RESP PURPLE_AVAILABLE_ENUMERATOR_IN_3_0 = 0x0004,
-	PURPLE_CONNECTION_FLAG_FORMATTING_WBFO PURPLE_AVAILABLE_ENUMERATOR_IN_3_0 = 0x0008,
-	PURPLE_CONNECTION_FLAG_NO_NEWLINES PURPLE_AVAILABLE_ENUMERATOR_IN_3_0 = 0x0010,
-	PURPLE_CONNECTION_FLAG_NO_FONTSIZE PURPLE_AVAILABLE_ENUMERATOR_IN_3_0 = 0x0020,
-	PURPLE_CONNECTION_FLAG_NO_URLDESC PURPLE_AVAILABLE_ENUMERATOR_IN_3_0 = 0x0040,
-	PURPLE_CONNECTION_FLAG_NO_IMAGES PURPLE_AVAILABLE_ENUMERATOR_IN_3_0 = 0x0080,
-} PurpleConnectionFlags;
-
 /**
  * PurpleConnectionState:
  * @PURPLE_CONNECTION_STATE_DISCONNECTED: Disconnected
@@ -183,18 +149,6 @@
 void purple_connection_set_state(PurpleConnection *gc, PurpleConnectionState state);
 
 /**
- * purple_connection_set_flags:
- * @gc:    The connection.
- * @flags: The flags.
- *
- * Sets the connection flags.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-void purple_connection_set_flags(PurpleConnection *gc, PurpleConnectionFlags flags);
-
-/**
  * purple_connection_set_display_name:
  * @gc:   The connection.
  * @name: The displayed name.
@@ -220,19 +174,6 @@
 PurpleConnectionState purple_connection_get_state(PurpleConnection *gc);
 
 /**
- * purple_connection_get_flags:
- * @gc: The connection.
- *
- * Returns the connection flags.
- *
- * Returns: The connection flags.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-PurpleConnectionFlags purple_connection_get_flags(PurpleConnection *gc);
-
-/**
  * PURPLE_CONNECTION_IS_CONNECTED:
  *
  * Returns TRUE if the account is connected, otherwise returns FALSE.
# HG changeset patch
# Node ID 9be893035df31b44e197bf95498acf3479502638
# Parent  3e23247f7aea9b154715204c409966389959e770
diff --git a/libpurple/connection.c b/libpurple/connection.c
--- a/libpurple/connection.c
+++ b/libpurple/connection.c
@@ -47,7 +47,6 @@
 	GCancellable *cancellable;
 
 	PurpleProtocol *protocol;     /* The protocol.                     */
-	PurpleConnectionFlags flags;  /* Connection flags.                 */
 
 	PurpleConnectionState state;  /* The connection state.             */
 
@@ -76,7 +75,6 @@
 	PROP_ID,
 	PROP_CANCELLABLE,
 	PROP_PROTOCOL,
-	PROP_FLAGS,
 	PROP_STATE,
 	PROP_ACCOUNT,
 	PROP_PASSWORD,
@@ -159,21 +157,6 @@
 }
 
 void
-purple_connection_set_flags(PurpleConnection *connection,
-                            PurpleConnectionFlags flags)
-{
-	PurpleConnectionPrivate *priv = NULL;
-
-	g_return_if_fail(PURPLE_IS_CONNECTION(connection));
-
-	priv = purple_connection_get_instance_private(connection);
-
-	priv->flags = flags;
-
-	g_object_notify_by_pspec(G_OBJECT(connection), properties[PROP_FLAGS]);
-}
-
-void
 purple_connection_set_display_name(PurpleConnection *connection,
                                    const gchar *name)
 {
@@ -201,17 +184,6 @@
 	return priv->state;
 }
 
-PurpleConnectionFlags
-purple_connection_get_flags(PurpleConnection *connection) {
-	PurpleConnectionPrivate *priv = NULL;
-
-	g_return_val_if_fail(PURPLE_IS_CONNECTION(connection), 0);
-
-	priv = purple_connection_get_instance_private(connection);
-
-	return priv->flags;
-}
-
 PurpleAccount *
 purple_connection_get_account(PurpleConnection *connection) {
 	PurpleConnectionPrivate *priv = NULL;
@@ -518,9 +490,6 @@
 		case PROP_PROTOCOL:
 			priv->protocol = g_value_get_object(value);
 			break;
-		case PROP_FLAGS:
-			purple_connection_set_flags(connection, g_value_get_flags(value));
-			break;
 		case PROP_STATE:
 			purple_connection_set_state(connection, g_value_get_enum(value));
 			break;
@@ -560,9 +529,6 @@
 			g_value_set_object(value,
 			                   purple_connection_get_protocol(connection));
 			break;
-		case PROP_FLAGS:
-			g_value_set_flags(value, purple_connection_get_flags(connection));
-			break;
 		case PROP_STATE:
 			g_value_set_enum(value, purple_connection_get_state(connection));
 			break;
@@ -702,19 +668,6 @@
 		G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
 	/**
-	 * PurpleConnection:flags:
-	 *
-	 * The flags for this connection.
-	 *
-	 * Since: 3.0
-	 */
-	properties[PROP_FLAGS] = g_param_spec_flags(
-		"flags", "Connection flags",
-		"The flags of the connection.",
-		PURPLE_TYPE_CONNECTION_FLAGS, 0,
-		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
-
-	/**
 	 * PurpleConnection:state:
 	 *
 	 * The state of the connection.
diff --git a/libpurple/purpleconversation.h b/libpurple/purpleconversation.h
--- a/libpurple/purpleconversation.h
+++ b/libpurple/purpleconversation.h
@@ -384,31 +384,6 @@
 gboolean purple_conversation_send_message_finish(PurpleConversation *conversation, GAsyncResult *result, GError **error);
 
 /**
- * purple_conversation_set_features:
- * @conversation: The conversation
- * @features: Bitset defining supported features
- *
- * Set the features as supported for the given conversation.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-void purple_conversation_set_features(PurpleConversation *conversation, PurpleConnectionFlags features);
-
-/**
- * purple_conversation_get_features:
- * @conversation: The conversation
- *
- * Get the features supported by the given conversation.
- *
- * Returns: The flags.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-PurpleConnectionFlags purple_conversation_get_features(PurpleConversation *conversation);
-
-/**
  * purple_conversation_has_focus:
  * @conversation: The conversation.
  *
diff --git a/libpurple/purpleconversation.c b/libpurple/purpleconversation.c
--- a/libpurple/purpleconversation.c
+++ b/libpurple/purpleconversation.c
@@ -49,8 +49,6 @@
 	char *title;
 	gboolean title_generated;
 
-	PurpleConnectionFlags features;
-
 	gboolean age_restricted;
 	char *description;
 	char *topic;
@@ -81,7 +79,6 @@
 	PROP_TITLE,
 	PROP_TITLE_FOR_DISPLAY,
 	PROP_TITLE_GENERATED,
-	PROP_FEATURES,
 	PROP_AGE_RESTRICTED,
 	PROP_DESCRIPTION,
 	PROP_TOPIC,
@@ -366,10 +363,6 @@
 	case PROP_TITLE:
 		purple_conversation_set_title(conversation, g_value_get_string(value));
 		break;
-	case PROP_FEATURES:
-		purple_conversation_set_features(conversation,
-		                                 g_value_get_flags(value));
-		break;
 	case PROP_AGE_RESTRICTED:
 		purple_conversation_set_age_restricted(conversation,
 		                                       g_value_get_boolean(value));
@@ -466,10 +459,6 @@
 		g_value_set_boolean(value,
 		                    purple_conversation_get_title_generated(conversation));
 		break;
-	case PROP_FEATURES:
-		g_value_set_flags(value,
-		                  purple_conversation_get_features(conversation));
-		break;
 	case PROP_AGE_RESTRICTED:
 		g_value_set_boolean(value,
 		                    purple_conversation_get_age_restricted(conversation));
@@ -544,8 +533,6 @@
 static void
 purple_conversation_constructed(GObject *object) {
 	PurpleConversation *conversation = PURPLE_CONVERSATION(object);
-	PurpleAccount *account;
-	PurpleConnection *gc;
 
 	G_OBJECT_CLASS(purple_conversation_parent_class)->constructed(object);
 
@@ -559,19 +546,6 @@
 			purple_conversation_set_title_generated(conversation, TRUE);
 		}
 	}
-
-	g_object_get(object, "account", &account, NULL);
-	gc = purple_account_get_connection(account);
-
-	/* Check if we have a connection before we use it. The unit tests are one
-	 * case where we will not have a connection.
-	 */
-	if(PURPLE_IS_CONNECTION(gc)) {
-		purple_conversation_set_features(conversation,
-		                                 purple_connection_get_flags(gc));
-	}
-
-	g_object_unref(account);
 }
 
 static void
@@ -770,20 +744,6 @@
 		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
 	/**
-	 * PurpleConversation:features:
-	 *
-	 * The features that this conversation supports.
-	 *
-	 * Since: 3.0
-	 */
-	properties[PROP_FEATURES] = g_param_spec_flags(
-		"features", "Connection features",
-		"The connection features of the conversation.",
-		PURPLE_TYPE_CONNECTION_FLAGS,
-		0,
-		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
-
-	/**
 	 * PurpleConversation:age-restricted:
 	 *
 	 * Whether or not the conversation is age restricted.
@@ -1131,27 +1091,6 @@
 	g_signal_emit(conversation, signals[SIG_PRESENT], 0);
 }
 
-void
-purple_conversation_set_features(PurpleConversation *conversation,
-                                 PurpleConnectionFlags features)
-{
-	g_return_if_fail(PURPLE_IS_CONVERSATION(conversation));
-
-	if(conversation->features != features) {
-		conversation->features = features;
-
-		g_object_notify_by_pspec(G_OBJECT(conversation),
-		                         properties[PROP_FEATURES]);
-	}
-}
-
-PurpleConnectionFlags
-purple_conversation_get_features(PurpleConversation *conversation) {
-	g_return_val_if_fail(PURPLE_IS_CONVERSATION(conversation), 0);
-
-	return conversation->features;
-}
-
 const char *
 purple_conversation_get_id(PurpleConversation *conversation) {
 	g_return_val_if_fail(PURPLE_IS_CONVERSATION(conversation), NULL);
diff --git a/libpurple/tests/test_conversation.c b/libpurple/tests/test_conversation.c
--- a/libpurple/tests/test_conversation.c
+++ b/libpurple/tests/test_conversation.c
@@ -46,7 +46,6 @@
 	PurpleAccount *account1 = NULL;
 	PurpleAvatar *avatar = NULL;
 	PurpleAvatar *avatar1 = NULL;
-	PurpleConnectionFlags features = 0;
 	PurpleContactInfo *creator = NULL;
 	PurpleContactInfo *creator1 = NULL;
 	PurpleContactInfo *topic_author = NULL;
@@ -98,7 +97,6 @@
 		"creator", creator,
 		"description", "to describe or not to describe...",
 		"favorite", TRUE,
-		"features", PURPLE_CONNECTION_FLAG_HTML,
 		"id", "id1",
 		"name", "name1",
 		"needs-attention", TRUE,
@@ -120,7 +118,6 @@
 		"creator", &creator1,
 		"description", &description,
 		"favorite", &favorite,
-		"features", &features,
 		"global-id", &global_id,
 		"id", &id,
 		"members", &members,
@@ -160,8 +157,6 @@
 
 	g_assert_true(favorite);
 
-	g_assert_cmpint(features, ==, PURPLE_CONNECTION_FLAG_HTML);
-
 	g_assert_cmpstr(global_id, ==, "test-id1");
 	g_clear_pointer(&global_id, g_free);
 
diff --git a/libpurple/tests/test_conversation_manager.c b/libpurple/tests/test_conversation_manager.c
--- a/libpurple/tests/test_conversation_manager.c
+++ b/libpurple/tests/test_conversation_manager.c
@@ -169,13 +169,12 @@
 	purple_conversation_manager_register(manager, conversation);
 
 	/* Set the features and title of the conversation, and verify our counters. */
-	purple_conversation_set_features(conversation, PURPLE_CONNECTION_FLAG_NO_IMAGES);
 	purple_conversation_set_title(conversation, "A place for kool kats");
 
 	/* The title also notifies for the title-for-display property which is why
-	 * we get 3 callbacks called instead of just 2.
+	 * we get 2 callbacks called instead of just 1.
 	 */
-	g_assert_cmpuint(counter, ==, 3);
+	g_assert_cmpuint(counter, ==, 2);
 	g_assert_cmpuint(detailed_counter, ==, 1);
 
 	/* Unregister the conversation, to make sure signals are no longer
