... if ( $session->is_new() ) { # Make CGI::Session think no save is needed # by simulating a call to flush. $session->{_STATUS} = &CGI::Session::SYNCED; # Make sure we don't use the session by accident. undef $session; } else { ... #### ... if ( $session->is_new() ) { $session->flush(); # Force it to be saved before it's deleted. $session->delete(); } else { ... #### ... if ( $session->is_new() ) { $session->delete(); eval { undef $session; }; } else { ...