diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DefaultDataTypeArchiveService.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DefaultDataTypeArchiveService.java index 0b3c536cde..e0a58b78f7 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DefaultDataTypeArchiveService.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DefaultDataTypeArchiveService.java @@ -169,8 +169,13 @@ public class DefaultDataTypeArchiveService implements DataTypeArchiveService { protected DataTypeManagerInfo addDTM(DataTypeManagerInfo dtmInfo) throws DuplicateIdException { DataTypeManagerInfo existingDTM = openDTMs.get(dtmInfo.dtm.getUniversalID()); if (existingDTM != null) { - dtmInfo.dtm.close(); - throw new DuplicateIdException(dtmInfo.name(), existingDTM.name()); + if (existingDTM.isClosed()) { + openDTMs.remove(dtmInfo.dtm.getUniversalID()); + } + else { + dtmInfo.dtm.close(); + throw new DuplicateIdException(dtmInfo.name(), existingDTM.name()); + } } openDTMs.put(dtmInfo.dtm.getUniversalID(), dtmInfo); afterAddDataTypeManager(dtmInfo);