anchor.diff:          end;
         end;
       end
  -    else if kfh.dwFileVersion = $0400 then
  +    else if kfh.dwFileVersion = VERSION_40 then
         raise EKMXError.Create(EKMX_OldKeyboardFile,
           'The keyboard file is from version 4.0 and is not supported in this version of Keyman.')
  -    else if kfh.dwFileVersion > $0600 then
  +    else if (kfh.dwFileVersion > VERSION_60) and (HIWORD(kfh.dwFileVersion) = 0) then
       begin
         if GetSystemStore(Memory, TSS_COMPILEDVERSION, ver) then
         begin
  
positive.code:     if kfh.dwIdentifier <> FILEID_COMPILED then
        raise EKMXError.CreateFmt(EKMX_InvalidKeyboardFile, 'The keyboard file %0:s is invalid', [ExtractFileName(FileName)]);
  
      if (kfh.dwFileVersion = $0500) or (kfh.dwFileVersion = $0501) or (kfh.dwFileVersion = $0600) or (kfh.dwFileVersion = $0700) or (kfh.dwFileVersion = $0800) or  // I3377
        (kfh.dwFileVersion = $0900) then  // I3377
      begin
        ki.FileVersion := kfh.dwFileVersion;
        GetSystemStore(Memory, TSS_NAME, ki.KeyboardName);
  
negative.code: 
        ki.MnemonicLayout := GetSystemStore(Memory, TSS_MNEMONIC, smnemonic) and (smnemonic <> '0');
  
        ki.KeyboardID := kfh.KeyboardID;
        ki.DefaultHotKey := kfh.HotKey;
        ki.LogicalLayout := (kfh.dwFlags and KF_LOGICALLAYOUT) = KF_LOGICALLAYOUT;
  