private function _shiftTmp($path)
  {
    if ($path) {
      $names = explode(self::DELIMITER, $path);
      foreach ($names as $name) {
        if (!is_array($this->_tmp)) {
          $this->_tmp = array();
        }
        if (!isset($this->_tmp[$name])) {
          $this->_tmp[$name] = null;
        }

        $this->_tmp = &$this->_tmp[$name];
      }
    }
  }