diff --git a/lib/SimpleSAML/Auth/Default.php b/lib/SimpleSAML/Auth/Default.php
index cdffbc5aa8625983c8a7f452c178edde961c23f5..74ec80da47c3a535c9fe909473fd834233765b63 100644
--- a/lib/SimpleSAML/Auth/Default.php
+++ b/lib/SimpleSAML/Auth/Default.php
@@ -103,11 +103,11 @@ class SimpleSAML_Auth_Default {
 	 * Start logout.
 	 *
 	 * This function starts a logout operation from the current authentication source. This function
-	 * never returns.
+	 * 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.
 	 */
-	public static function initLogout($returnURL) {
+	public static function initLogoutReturn($returnURL) {
 		assert('is_string($returnURL)');
 
 		$session = SimpleSAML_Session::getInstance();
@@ -126,6 +126,21 @@ class SimpleSAML_Auth_Default {
 		}
 
 		$as->logout($state);
+	}
+
+
+	/**
+	 * Start logout.
+	 *
+	 * This function starts a logout operation from the current authentication source. This function
+	 * never returns.
+	 *
+	 * @param string $returnURL  The URL we should redirect the user to after logging out.
+	 */
+	public static function initLogout($returnURL) {
+		assert('is_string($returnURL)');
+
+		self::initLogoutReturn($returnURL);
 		self::logoutCompleted($state);
 	}