diff --git a/lib/SimpleSAML/SessionHandlerPHP.php b/lib/SimpleSAML/SessionHandlerPHP.php
index 30f3d909ab56b9c0688bc118401f239937394295..18c7578422e399970d9e36e49402de04c86f87e3 100644
--- a/lib/SimpleSAML/SessionHandlerPHP.php
+++ b/lib/SimpleSAML/SessionHandlerPHP.php
@@ -343,6 +343,11 @@ class SessionHandlerPHP extends SessionHandler
             );
         }
 
+        if (session_id() !== '') {
+            // session already started, close it
+            session_write_close();
+        }
+
         session_set_cookie_params(
             $cookieParams['lifetime'],
             $cookieParams['path'],
@@ -351,11 +356,6 @@ class SessionHandlerPHP extends SessionHandler
             $cookieParams['httponly']
         );
 
-        if (session_id() !== '') {
-            // session already started, close it
-            session_write_close();
-        }
-
         session_id($sessionID);
         $this->sessionStart();
     }