diff --git a/lib/SimpleSAML/Session.php b/lib/SimpleSAML/Session.php
index a6932766739691bea6efdec1e317bb80b7ba3209..50e6ad9e92e02954627454e1c226b7895feca260 100644
--- a/lib/SimpleSAML/Session.php
+++ b/lib/SimpleSAML/Session.php
@@ -753,18 +753,16 @@ class SimpleSAML_Session implements Serializable
      */
     public function updateSessionCookies($params = null)
     {
-        $sessionHandler = \SimpleSAML\SessionHandler::getSessionHandler();
+        assert(is_null($params) || is_array($params));
 
-        if (is_array($params) && !empty($params)) {
-            $params = array_merge($sessionHandler->getCookieParams(), $params);
-        } else {
-            $params = $sessionHandler->getCookieParams();
-        }
+        $sessionHandler = \SimpleSAML\SessionHandler::getSessionHandler();
 
         if ($this->sessionId !== null) {
             $sessionHandler->setCookie($sessionHandler->getSessionCookieName(), $this->sessionId, $params);
         }
 
+        $params = array_merge($sessionHandler->getCookieParams(), is_array($params) ? $params : array());
+
         if ($this->authToken !== null) {
             $globalConfig = SimpleSAML_Configuration::getInstance();
             \SimpleSAML\Utils\HTTP::setCookie(