protected function unpersist($id)
    {

        // the requested session file is not a valid file
        if (apc_exists($id) === false) {
            return;
        }

        // decode the session from the filesystem
        if (($marshalled = apc_fetch($id)) === false) {
            throw new SessionDataNotReadableException(sprintf('Can\'t load session with ID %s', $id));
        }

        // create a new session instance from the marshaled object representation
        return $this->unmarshall($marshalled);
    }