anchor.diff:        end;
         if ( str[1] = #39 ) then
         begin
  -        lastUnitId := GetUnitId( unitForAnalyse[ unitForAnalyse.Count - 1] );
  -        del_pos := PosEx( #39, str );
  -        Delete( str, del_pos, 1 );
  -        del_pos := PosEx( #39, str );
  -        Delete( str, del_pos, 1 );
  -        del_pos := PosEx( ',', str );
  -        if del_pos > 0 then
  -          Delete( str, del_pos, 1 );
  -        del_pos := PosEx( ';', str );
  -        if del_pos > 0 then
  -          Delete( str, del_pos, 1 );
  -        nonSystemUnitFile[lastUnitId] := path + str;
  +        CutSymbol( #39, str );
  +        CutSymbol( #39, str );
  +        CutSymbol( ',', str );
  +        CutSymbol( ';', str );
  +        for I := 0 to nonSystemUnit.Count - 1   do
  +        begin
  +          if nonSystemUnit[i] = unitForAnalyse[ unitForAnalyse.Count - 1] then
  +            nonSystemUnitFile[i] := path + str;
  +        end;
         end;
  -
  -    end;
  -
  +    end;
     until SameText(str, 'begin');
     unitForAnalyse.Delete( unitForAnalyse.Count - 1 );
  +end;
  +
  +procedure TDependenciesGrapher.CutSymbol( s : string; var str : string );
  +var delPos : integer;
  +begin
  +  delPos := PosEx( s, str );
  +  if delPos > 0 then
  +    Delete( str, delPos, 1 );
   end;
   
   procedure TDependenciesGrapher.LoadFile( filename : string );
  
positive.code: var
      str, path : string;
      lastUnitId, del_pos : integer;
  begin
    LoadFile( filename );
    path := ExtractFilePath( filename );
  
negative.code:   end;
  
    // Deleting {} comments
    i := 0;
    repeat
      i := PosEx( '{', fileOfText, i + 1 );
      if i > 0 then
      begin
        j := PosEx( '}', fileOfText, i + 1 );
        if j > 0 then
          delete( fileOfText, i, j - i + 1 );
      end;
    until i = 0;
    // Deleting (* *) comments
    i := 0;
    repeat
      i := PosEx( '(*', fileOfText, i + 1 );
      if i > 0 then
      begin
        j := PosEx( '*)', fileOfText, i + 1 );
        if j > 0 then
          delete( fileOfText, i, j - i + 2 );
      end;
    until i = 0;
    // Deleting // comments
    i := 1;
    while i < Length( fileOfText )  do
  