anchor.diff:    begin
       IndludeFileName := Trim(Copy(IncludeDirective, 5, Length(IncludeDirective) - 5));
       Content := FIncludeHandler.GetIncludeFileContent(IndludeFileName);
  +    for i := 1 to length(content) do
  +      if Content[i] < #32 then
  +        Content[i] := ' ';
  +
       Origin := FOrigin;
  -    Origin := PChar(Copy(Origin, 1, Run - Length(IncludeDirective)) + Content + Copy(Origin, Run + 1, Length(Origin)));
  -    FOrigin :=PChar(Origin);
  -    Run := Run - Length(IncludeDirective);
  -    IncludedLineCount := 1;
  -    for CurrentChar in Content do
  -      if CurrentChar = #10 then
  -        Inc(IncludedLineCount);
  -    FLineNumber := FLineNumber - IncludedLineCount;
  -
  -    //RunAhead := Run;
  -    Next;
  +    GetMem(pBehindIncludedContent, INCLUDE_BUFFER_SIZE);
  +    try
  +      StrPCopy(pBehindIncludedContent, MidStr(Origin, Run+1, Length(Origin)));
  +      BehindIncludedContent := pBehindIncludedContent;
  +      Content :=Content + BehindIncludedContent;
  +      StrPCopy(@FOrigin[Run - Length(IncludeDirective)], Content);
  +
  +      Run := Run - Length(IncludeDirective);
  +      IncludedLineCount := 1;
  +      for CurrentChar in Content do
  +        if CurrentChar = #10 then
  +          Inc(IncludedLineCount);
  +      FLineNumber := FLineNumber - IncludedLineCount;
  +
  +      Next;
  +    finally
  +      FreeMem(pBehindIncludedContent);
  +    end;
     end;
   end;
   
  
positive.code: 
  procedure TmwBasePasLex.IncludeFile;
  var
    IndludeFileName, IncludeDirective, Content, Origin: string;
    IncludedLineCount: integer;
    CurrentChar: Char;
  begin
    IncludeDirective := Token;
  
negative.code: 
  implementation
  
  uses
    StrUtils;
  
  type
    TmwPasLexExpressionEvaluation = (leeNone, leeAnd, leeOr);
  
  const
    INCLUDE_BUFFER_SIZE = 1024*1024;
  
  procedure MakeIdentTable;
  var
  