diff --git a/eeschema/dialogs/dialog_sim_model.cpp b/eeschema/dialogs/dialog_sim_model.cpp
index fa85fa58f9..1abf19757f 100644
--- a/eeschema/dialogs/dialog_sim_model.cpp
+++ b/eeschema/dialogs/dialog_sim_model.cpp
@@ -845,10 +845,13 @@ bool DIALOG_SIM_MODEL<T>::loadLibrary( const wxString& aLibraryPath, REPORTER& a
     m_modelListBoxEntryToLibraryIdx.clear();
     wxArrayString modelNames;
 
+    bool modelNameExists = false;
     for( const auto& [name, model] : library()->GetModels() )
     {
         modelNames.Add( name );
         m_modelListBoxEntryToLibraryIdx[name] = m_modelListBoxEntryToLibraryIdx.size();
+        if( name == modelName )
+            modelNameExists = true;
     }
 
     modelNames.Sort();
@@ -856,6 +859,13 @@ bool DIALOG_SIM_MODEL<T>::loadLibrary( const wxString& aLibraryPath, REPORTER& a
     m_modelListBox->Clear();
     m_modelListBox->Append( modelNames );
 
+    if( !modelNameExists )
+    {
+        m_infoBar->ShowMessage(
+                wxString::Format( _( "No model named '%s' in '%s'." ), modelName, aLibraryPath ) );
+        return false;
+    }
+
     if( isIbisLoaded() )
     {
         wxArrayString emptyArray;