protected function _parseGravatarCallback($m) {
        if (preg_match('#^\$#', $m[1])) {
            foreach ($this->_template->vars as $key => $val) {
                if (substr($m[1], 1, strlen($m[1])) == $key) {
                    $m[1] = preg_replace('`' . $key . '`', $val, $m[1]);
                    $m[1] = substr($m[1], 1, strlen($m[1]));
                }
            }
        }
        if (isset($m[2]) && preg_match('#^\$#', $m[2])) {
            foreach ($this->_template->vars as $key => $val) {
                if (substr($m[2], 1, strlen($m[2])) == $key) {
                    $m[2] = preg_replace('`' . $key . '`', $val, $m[2]);
                    $m[2] = substr($m[2], 1, strlen($m[2]));
                }
            }
        }
        else {
            $m[2] = 100;
        }

        if (preg_match('#\'#', $m[1])) {
            $m[1] = preg_replace('#\'#', '"', $m[1]);

            return '<?php echo \'http://secure.gravatar.com/avatar/\'.md5(' . $m[1] . ').\'?s=' . $m[2] . '&d=identicon\'; ?>';
        }
        else {
            return '<?php echo \'http://secure.gravatar.com/avatar/\'.md5("' . $m[1] . '").\'?s=' . $m[2] . '&d=identicon\'; ?>';
        }
    }