diff --git a/libpurple/purplecredentialprovider.h b/libpurple/purplecredentialprovider.h
--- a/libpurple/purplecredentialprovider.h
+++ b/libpurple/purplecredentialprovider.h
@@ -91,8 +91,6 @@
 	void (*clear_password_async)(PurpleCredentialProvider *provider, PurpleAccount *account, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
 	gboolean (*clear_password_finish)(PurpleCredentialProvider *provider, GAsyncResult *result, GError **error);
 
-	void (*close)(PurpleCredentialProvider *provider);
-
 	PurpleRequestFields *(*read_settings)(PurpleCredentialProvider *provider);
 	gboolean (*write_settings)(PurpleCredentialProvider *provider, PurpleRequestFields *fields);
 
@@ -238,19 +236,6 @@
 gboolean purple_credential_provider_clear_password_finish(PurpleCredentialProvider *provider, GAsyncResult *result, GError **error);
 
 /**
- * purple_credential_provider_close:
- * @provider: The #PurpleCredentialProvider instance.
- *
- * Tells @provider to close.  This is useful if you need to disconnect a socket
- * or close a file to save memory.
- *
- * Since: 3.0.0
- *
- * Deprecated: 3.0.0
- */
-void purple_credential_provider_close(PurpleCredentialProvider *provider);
-
-/**
  * purple_credential_provider_read_settings:
  * @provider: The #PurpleCredentialProvider instance.
  *
diff --git a/libpurple/purplecredentialprovider.c b/libpurple/purplecredentialprovider.c
--- a/libpurple/purplecredentialprovider.c
+++ b/libpurple/purplecredentialprovider.c
@@ -340,18 +340,6 @@
 	return FALSE;
 }
 
-void
-purple_credential_provider_close(PurpleCredentialProvider *provider) {
-	PurpleCredentialProviderClass *klass = NULL;
-
-	g_return_if_fail(PURPLE_IS_CREDENTIAL_PROVIDER(provider));
-
-	klass = PURPLE_CREDENTIAL_PROVIDER_GET_CLASS(provider);
-	if(klass && klass->close) {
-		klass->close(provider);
-	}
-}
-
 PurpleRequestFields *
 purple_credential_provider_read_settings(PurpleCredentialProvider *provider) {
 	PurpleCredentialProviderClass *klass = NULL;
diff --git a/libpurple/tests/test_credential_provider.c b/libpurple/tests/test_credential_provider.c
--- a/libpurple/tests/test_credential_provider.c
+++ b/libpurple/tests/test_credential_provider.c
@@ -224,7 +224,6 @@
 	gboolean write_password_finish;
 	gboolean clear_password_async;
 	gboolean clear_password_finish;
-	gboolean close;
 	gboolean read_settings;
 	gboolean write_settings;
 };
@@ -321,13 +320,6 @@
 	return FALSE;
 }
 
-static void
-test_purple_credential_provider_close(PurpleCredentialProvider *p) {
-	TestPurpleCredentialProvider *provider = TEST_PURPLE_CREDENTIAL_PROVIDER(p);
-
-	provider->close = TRUE;
-}
-
 static PurpleRequestFields *
 test_purple_credential_provider_read_settings(PurpleCredentialProvider *p) {
 	TestPurpleCredentialProvider *provider = TEST_PURPLE_CREDENTIAL_PROVIDER(p);
@@ -363,7 +355,6 @@
 	provider_class->write_password_finish = test_purple_credential_provider_write_password_finish;
 	provider_class->clear_password_async = test_purple_credential_provider_clear_password_async;
 	provider_class->clear_password_finish = test_purple_credential_provider_clear_password_finish;
-	provider_class->close = test_purple_credential_provider_close;
 	provider_class->read_settings = test_purple_credential_provider_read_settings;
 	provider_class->write_settings = test_purple_credential_provider_write_settings;
 }
@@ -437,7 +428,6 @@
 	g_assert_false(tp->write_password_finish);
 	g_assert_false(tp->clear_password_async);
 	g_assert_false(tp->clear_password_finish);
-	g_assert_false(tp->close);
 	g_assert_false(tp->read_settings);
 	g_assert_false(tp->write_settings);
 
@@ -488,7 +478,6 @@
 	g_assert_true(tp->write_password_finish);
 	g_assert_false(tp->clear_password_async);
 	g_assert_false(tp->clear_password_finish);
-	g_assert_false(tp->close);
 	g_assert_false(tp->read_settings);
 	g_assert_false(tp->write_settings);
 
@@ -539,7 +528,6 @@
 	g_assert_false(tp->write_password_finish);
 	g_assert_true(tp->clear_password_async);
 	g_assert_true(tp->clear_password_finish);
-	g_assert_false(tp->close);
 	g_assert_false(tp->read_settings);
 	g_assert_false(tp->write_settings);
 
@@ -547,26 +535,6 @@
 }
 
 static void
-test_purple_credential_provider_test_close(void) {
-	PurpleCredentialProvider *p = test_purple_credential_provider_new();
-	TestPurpleCredentialProvider *tp = TEST_PURPLE_CREDENTIAL_PROVIDER(p);
-
-	purple_credential_provider_close(p);
-
-	g_assert_false(tp->read_password_async);
-	g_assert_false(tp->read_password_finish);
-	g_assert_false(tp->write_password_async);
-	g_assert_false(tp->write_password_finish);
-	g_assert_false(tp->clear_password_async);
-	g_assert_false(tp->clear_password_finish);
-	g_assert_true(tp->close);
-	g_assert_false(tp->read_settings);
-	g_assert_false(tp->write_settings);
-
-	g_object_unref(G_OBJECT(p));
-}
-
-static void
 test_purple_credential_provider_test_read_settings(void) {
 	PurpleCredentialProvider *p = test_purple_credential_provider_new();
 	TestPurpleCredentialProvider *tp = TEST_PURPLE_CREDENTIAL_PROVIDER(p);
@@ -579,7 +547,6 @@
 	g_assert_false(tp->write_password_finish);
 	g_assert_false(tp->clear_password_async);
 	g_assert_false(tp->clear_password_finish);
-	g_assert_false(tp->close);
 	g_assert_true(tp->read_settings);
 	g_assert_false(tp->write_settings);
 
@@ -601,7 +568,6 @@
 	g_assert_false(tp->write_password_finish);
 	g_assert_false(tp->clear_password_async);
 	g_assert_false(tp->clear_password_finish);
-	g_assert_false(tp->close);
 	g_assert_false(tp->read_settings);
 	g_assert_true(tp->write_settings);
 
@@ -638,8 +604,6 @@
 	                test_purple_credential_provider_test_write);
 	g_test_add_func("/credential-provider/functional/clear",
 	                test_purple_credential_provider_test_clear);
-	g_test_add_func("/credential-provider/functional/close",
-	                test_purple_credential_provider_test_close);
 	g_test_add_func("/credential-provider/functional/read_settings",
 	                test_purple_credential_provider_test_read_settings);
 	g_test_add_func("/credential-provider/functional/write_settings",
