protected function tmpFile()
    {
        if (($this->temp = tempnam($this->config->tmp, $this->config->prefix)) === false)
        {
            throw new Rah_Eien_Exception('Unable to create a temporary file, check the configured tmp directory.');
        }

        if ($this->config->extension)
        {
            if (rename($this->temp, $this->temp.'.'.$this->config->extension) === false)
            {
                throw new Rah_Eien_Exception('Unable to add "'.$this->config->extension.'" extension to "'.$this->temp.'".');
            }

            $this->temp .= '.'.$this->config->extension;
        }
    }