     process.exit()
 
 gistFetcher = (gist, gistCb) ->
-  return gistCb() if !gist
-  return gistCb() if !gist.files
-  return gistCb() if ids && (gist.id not in ids)
-  return gistCb() if singleId && (gist.id != singleId)
+  return process.nextTick(gistCb) if !gist
+  return process.nextTick(gistCb) if !gist.files
+  return process.nextTick(gistCb) if ids && (gist.id not in ids)
+  return process.nextTick(gistCb) if singleId && (gist.id != singleId)
   #console.log "NOT RETURNING", gist.id, singleId
   fileNames = Object.keys gist.files
   folder = base + gist.id

            fileCb()
          , Math.random() * 150 + 150
    else
      fileCb()
  , () ->
    gistCb()


        if fs.lstatSync(filePath)
          # if it exists we skip it
          console.log "skipping", gist.id, fileName
          return process.nextTick(fileCb)
      catch e
        # otherwise we just continue
    if ext in [".html", ".js", ".coffee", ".md", ".json", ".csv", ".tsv", ".css"]
