diff --git a/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFImporter.cc b/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFImporter.cc index 5186b8a15..c4628b38c 100644 --- a/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFImporter.cc +++ b/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFImporter.cc @@ -1365,12 +1365,20 @@ LEFDEFReaderState::foreign_cell (Layout &layout, const std::string &name) std::map::const_iterator c = m_foreign_cells.find (name); if (c != m_foreign_cells.end ()) { return c->second; - } else { - db::cell_index_type ci = layout.add_cell (name.c_str ()); - layout.cell (ci).set_ghost_cell (true); - m_foreign_cells.insert (std::make_pair (name, ci)); - return ci; } + + std::pair cc = layout.cell_by_name (name.c_str ()); + + db::cell_index_type ci; + if (cc.first) { + ci = cc.second; + } else { + ci = layout.add_cell (name.c_str ()); + layout.cell (ci).set_ghost_cell (true); + } + + m_foreign_cells.insert (std::make_pair (name, ci)); + return ci; } std::pair