anchor.diff:  
           let tcConfig = CreateScriptSourceTcConfig(filename,codeContext,useSimpleResolution,useFsiAuxLib,Some references0,applyCommmandLineArgs)
   
  -        let protoClosure = [SourceFile(filename,range0,source)]
  -        let finalClosure,tcConfig = FindClosureDirectives(protoClosure,tcConfig,codeContext,lexResourceManager)
  -        GetLoadClosure(filename,finalClosure,tcConfig,codeContext)
  +        let closureSources = [ClosureSource(filename,range0,source,true)]
  +        let closureFiles,tcConfig = FindClosureFiles(closureSources,tcConfig,codeContext,lexResourceManager)
  +        GetLoadClosure(filename,closureFiles,tcConfig,codeContext)
           
       /// Given source filename, find the full load closure
       /// Used from fsi.fs and fsc.fs, for #load and command line
       let GetFullClosureOfScriptFiles(tcConfig:TcConfig,files:(string*range) list,codeContext,_useDefaultScriptingReferences:bool,lexResourceManager:Lexhelp.LexResourceManager) = 
  -        let mainFile = fst (List.head files)
  -        let protoClosure = files |> List.map (fun (filename,m)->SourceFileOfFilename(filename,m,tcConfig.inputCodePage)) |> List.concat |> List.rev // Reverse to put them in the order they will be extracted later
  -        let finalClosure,tcConfig = FindClosureDirectives(protoClosure,tcConfig,codeContext,lexResourceManager)
  -        GetLoadClosure(mainFile,finalClosure,tcConfig,codeContext)        
  +        let mainFile = fst (List.last files)
  +        let closureSources = files |> List.map (fun (filename,m) -> ClosureSourceOfFilename(filename,m,tcConfig.inputCodePage,true)) |> List.concat 
  +        let closureFiles,tcConfig = FindClosureFiles(closureSources,tcConfig,codeContext,lexResourceManager)
  +        GetLoadClosure(mainFile,closureFiles,tcConfig,codeContext)        
   
   type LoadClosure with
       // Used from service.fs, when editing a script file
  
positive.code:                 else Some(m,path)
              with e -> errorRecovery e m; None
          tcConfig.loadedSources 
          |> List.map resolveLoadedSource 
          |> List.filter Option.isSome 
          |> List.map Option.get                
          |> List.distinct     
  
      /// A closed set of assemblies where, for any subset S:
  
negative.code:                 | None -> new  StreamReader(stream,true)
                  | Some n -> new  StreamReader(stream,Encoding.GetEncodingShim(n)) 
              let source = reader.ReadToEnd()
              [ClosureSource(filename,m,source,parseRequired)]
          with e -> 
              errorRecovery e m 
              []
  