diff --git a/flag.module b/flag.module index b8fbcb4..b544142 100644 --- a/flag.module +++ b/flag.module @@ -2057,7 +2057,9 @@ function flag_set_sid($uid = NULL, $create = TRUE) { $uid = $GLOBALS['user']->uid; } - if (!isset($sids[$uid])) { + // Sets the sid if none was set. If the caller specified to create an sid and + // we have an invalid one, create it instead of returning the invalid sid. + if (!isset($sids[$uid]) || ($sids[$uid] == -1 && $create)) { if (module_exists('session_api') && session_api_available() && $uid == 0) { $sids[$uid] = session_api_get_sid($create); }