_contacts_by_handle() does strip out features that are already prepared on all contacts. The other paths should do as well.
Here is patch for tp_connection_upgrade_contacts(). http://cgit.collabora.com/git/user/xclaesse/telepathy-glib.git/log/?h=no-op
+/* Regression test case for fd.o#41414 */ +static void +test_upgrade_noop (Fixture *f, + gconstpointer unused G_GNUC_UNUSED) Use g_test_bug ("41414"); Otherwise looks great.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.