anchor.diff:  { TfrmModelEditor }
   
   function TfrmModelEditor.DoOpenFile: Boolean;
  +var
  +  model: TStringList;
   begin
     model := TStringList.Create;
  -  model.LoadFromFile(FileName);
  -  parser := TLexicalModelParser.Create(model.Text);
  +  try
  +    model.DefaultEncoding := TEncoding.UTF8;
  +    try
  +      model.LoadFromFile(FileName);
  +    except
  +      on E:EEncodingError do
  +      begin
  +        try
  +          model.LoadFromFile(FileName, TEncoding.Default);
  +        except
  +          on E:EEncodingError do
  +          begin
  +            ShowMessage('Could not load file, does not appear to be a valid encoding.');
  +            Exit(False);
  +          end;
  +        end;
  +      end;
  +    end;
  +    parser := TLexicalModelParser.Create(model.Text);
  +  finally
  +    model.Free;
  +  end;
  +
     wordlists := TWordlists.Create;
   
     Inc(FSetup);
  
positive.code: function TfrmModelEditor.DoSaveFile: Boolean;
  var
    wordlist: TWordlist;
  begin
    if pages.ActivePage = pageSource then
    begin
  
negative.code:         function IndexOfFilename(const Filename: string): Integer;
        end;
    private
      parser: TLexicalModelParser;
      wordlists: TWordlists;
      frameSource: TframeTextEditor;
  