protected function _stringableJoin($parts, $delim)
    {
        $parts  = $this->_normalizeIterable($parts);
        $i      = 0;
        $result = '';
        foreach ($parts as $_part) {
            try {
                $_part = $this->_normalizeString($_part);
            } catch (InvalidArgumentException $e) {
                throw $this->_createOutOfRangeException($this->__('Invalid string part'), null, $e, $_part);
            }

            if ($i) {
                $result .= $delim;
            }

            $result .= $_part;
            ++$i;
        };

        return $result;
    }