diff --git a/src/uimenu.cpp b/src/uimenu.cpp
index dabea87..1475342 100644
--- a/src/uimenu.cpp
+++ b/src/uimenu.cpp
@@ -1572,9 +1572,11 @@ void CUIMenu::PerformanceMenu (CUIMenu *pUIMenu, TMenuEvent Event)
 	}
 	std::string Value;
 		
-	if (Event == MenuEventUpdate)
+	if (Event == MenuEventUpdate || Event == MenuEventUpdateParameter)
 	{
 		pUIMenu->m_bPerformanceDeleteMode=false;
+		// Ensure selected performance matches the actual loaded one
+		pUIMenu->m_nSelectedPerformanceID = pUIMenu->m_pMiniDexed->GetActualPerformanceID();
 	}
 	
 	if (pUIMenu->m_bSplashShow)
@@ -1703,7 +1705,7 @@ void CUIMenu::PerformanceMenu (CUIMenu *pUIMenu, TMenuEvent Event)
 		nPPerf = nPPerf.substr(nPPerf.length()-3,3);
 
 		nPSelected += ":"+nPPerf;
-		if(nValue == pUIMenu->m_pMiniDexed->GetActualPerformanceID())
+		if(bPerformanceSelectToLoad && nValue == pUIMenu->m_pMiniDexed->GetActualPerformanceID())
 		{
 			nPSelected += " [L]";
 		}
@@ -1791,7 +1793,7 @@ void CUIMenu::EditPerformanceBankNumber (CUIMenu *pUIMenu, TMenuEvent Event)
 	nPSelected += std::to_string(nValue+1);  // Convert to user-facing number rather than index
 	nPSelected = nPSelected.substr(nPSelected.length()-3,3);
 
-	if(nValue == (unsigned)pUIMenu->m_pMiniDexed->GetParameter (CMiniDexed::ParameterPerformanceBank))
+	if(bPerformanceSelectToLoad && nValue == (unsigned)pUIMenu->m_pMiniDexed->GetParameter (CMiniDexed::ParameterPerformanceBank))
 	{
 		nPSelected += " [L]";
 	}