diff --git a/lib/SimpleSAML/Auth/Default.php b/lib/SimpleSAML/Auth/Default.php
index 76b7f3989af405090275f69683e5b64b3a2d0c02..ecd55245564df232801efd6412bab59d98a86f32 100644
--- a/lib/SimpleSAML/Auth/Default.php
+++ b/lib/SimpleSAML/Auth/Default.php
@@ -23,7 +23,7 @@ class SimpleSAML_Auth_Default {
 		$as = SimpleSAML_Auth_Source::getById($authId);
 		if ($as === null) {
 			throw new Exception('Invalid authentication source: ' . $authId);
-	}
+		}
 		$as->initLogin($return, $errorURL, $params);
 	}
 
@@ -47,38 +47,14 @@ class SimpleSAML_Auth_Default {
 
 
 	/**
-	 * Start logout.
-	 *
-	 * This function starts a logout operation from the current authentication
-	 * source. This function will return if the logout operation does not
-	 * require a redirect.
-	 *
-	 * @param string $returnURL The URL we should redirect the user to after
-	 * logging out. No checking is performed on the URL, so make sure to verify
-	 * it on beforehand if the URL is obtained from user input. Refer to
-	 * \SimpleSAML\Utils\HTTP::checkURLAllowed() for more information.
-	 * @param string $authority The authentication source we are logging
-	 * out from.
+	 * @deprecated This method will be removed in SSP 2.0.
 	 */
 	public static function initLogoutReturn($returnURL, $authority) {
-		assert('is_string($returnURL)');
-		assert('is_string($authority)');
-
-		$session = SimpleSAML_Session::getSessionFromRequest();
-
-		$state = $session->getAuthData($authority, 'LogoutState');
-		$session->doLogout($authority);
-
-		$state['SimpleSAML_Auth_Default.ReturnURL'] = $returnURL;
-		$state['LogoutCompletedHandler'] = array(get_class(), 'logoutCompleted');
-
 		$as = SimpleSAML_Auth_Source::getById($authority);
-		if ($as === NULL) {
-			/* The authority wasn't an authentication source... */
-			self::logoutCompleted($state);
+		if ($as === null) {
+			throw new Exception('Invalid authentication source: ' . $authority);
 		}
-
-		$as->logout($state);
+		$as->initLogoutReturn($returnURL);
 	}
 
 
diff --git a/lib/SimpleSAML/Auth/Source.php b/lib/SimpleSAML/Auth/Source.php
index 2ad82a72552c1395309459866b06766d45c2c53d..fc3b9e8c699581e9323ec2ba07d0cc212c7f5319 100644
--- a/lib/SimpleSAML/Auth/Source.php
+++ b/lib/SimpleSAML/Auth/Source.php
@@ -247,6 +247,35 @@ abstract class SimpleSAML_Auth_Source
     }
 
 
+    /**
+     * Start logout.
+     *
+     * This function starts a logout operation from the current authentication source. This function will return if the
+     * logout operation does not require a redirect.
+     *
+     * @param string $returnURL The URL we should redirect the user to after logging out. No checking is performed on
+     * the URL, so make sure to verify it on beforehand if the URL is obtained from user input. Refer to
+     * \SimpleSAML\Utils\HTTP::checkURLAllowed() for more information.
+     */
+    public function initLogoutReturn($returnURL)
+    {
+        assert('is_string($returnURL)');
+        assert('is_string($authority)');
+
+        $session = SimpleSAML_Session::getSessionFromRequest();
+
+        $state = $session->getAuthData($this->authId, 'LogoutState');
+        $session->doLogout($this->authId);
+
+        $state['SimpleSAML_Auth_Default.ReturnURL'] = $returnURL;
+        $state['LogoutCompletedHandler'] = array(get_class(), 'logoutCompleted');
+
+        $this->logout($state);
+
+        self::logoutCompleted($state);
+    }
+
+
     /**
      * Called when logout operation completes.
      *