             debug("Found [...]")
             extend_line = false
             recycle_extra = true # make sure we process the "l.<nn>" line!
+          # if "extra" (next line) starts with a ( and we already have a valid
+          # file, this is likely the start of something else we need to process
+          # as a file, so add a space
+          else if extralen > 0 and extra[0] == '(' and isfile(file_name)
+            line = "#{line} #{extra}"
+            debug("Extended #{line}")
+            linelen += extralen + 1
+            if extralen < 79
+              extend_line = false
           else
             line += extra
             debug("Extended: " + line)

  file_useless1_rx = /\{\"?(?:\.|\.\.\/)*[^\.]+\.[^\{\}]*\"?\}(.*)/
  # Useless file #2: <filename.ext>; capture subsequent text
  file_useless2_rx = /<\"?(?:\.|\.\.\/)*[^\.]+\.[^>]*\"?>(.*)/
  pagenum_begin_rx = /\s*\[\d*(.*)/
  line_rx = /^l\.(\d+)\s(.*)/    # l.nn <text>
  warning_rx = /^(.*?) Warning: (.+)/ # Warnings, first line

      debug(line)

    # Skip things that are clearly not file names, though they may trigger false positives
    if line.length > 0 and (
      line.slice(0,5) == "File:" or
      line.slice(0,8) == "Package:" or
      line.slice(0,11) == "Dictionary:" or
      line.slice(0,15) == "Document Class:"
    ) or line.slice(0,9) == "LaTeX2e <" or line.match(assignment_rx)
      continue

    # Are we done? Get rid of extra spaces, just in case (we may have extended a line, etc.)
