diff --git a/pcbnew/widgets/pcb_net_inspector_panel.cpp b/pcbnew/widgets/pcb_net_inspector_panel.cpp
index add2f863f9..85e068f626 100644
--- a/pcbnew/widgets/pcb_net_inspector_panel.cpp
+++ b/pcbnew/widgets/pcb_net_inspector_panel.cpp
@@ -1947,9 +1947,17 @@ void PCB_NET_INSPECTOR_PANEL::onUnitsChanged( wxCommandEvent& event )
 
 void PCB_NET_INSPECTOR_PANEL::SaveSettings()
 {
-    // Don't save settings if a board has not yet been loaded - events fire while we set up the
-    // panel which overwrites the settings we haven't yet loaded
-    if( !m_board_loaded || m_board_loading )
+    // Don't save settings if a board has not yet been loaded or the panel hasn't been displayed.
+    // Events fire while we set up the panel which overwrite the settings we haven't yet loaded.
+    bool displayed = false;
+
+    for( unsigned int ii = 0; ii < m_data_model->columnCount() && !displayed; ++ii )
+    {
+        if( m_netsList->GetColumn( ii )->GetWidth() > 0 )
+            displayed = true;
+    }
+
+    if( !displayed || !m_board_loaded || m_board_loading )
         return;
 
     PROJECT_LOCAL_SETTINGS& localSettings = Pgm().GetSettingsManager().Prj().GetLocalSettings();