         }
         lastIndex = parts.count - 1
       }
-      if lastIndex > 0 {
+      if lastIndex >= 0 {
         try doList(baseDir, partIndex: 0)
       }
     }

        stream.startIndex = stream.currentIndex
      } else if stream.eatAsterisk() {
        if stream.eatAsterisk() {
          if stream.matchSlash() {
            fg.addRecurse()
            stream.startIndex = stream.currentIndex
          } else {
            stream.eatUntilOne(47) // /

    return false
  }

  // This gets used on patterns like this: "/home/dewd/**/*.txt"
  public func recurseAndMatch(path: String, partIndex: Int) throws {
    try FileBrowser.scanDir(path) { name, type in
      if self.matchFileName(name, partIndex: partIndex) {
