 					}
 					else
 					{
-						if (PrgChgResPrgOnClose[timerBtch] && !PrgMonPID.delete(timerfTemp))
+					; Do not modify PrgBatchIni%btchPrgPresetSel%[A_Index] until return to Batch Screen
+					btchPIDUserClose := timerfTemp
+						if (PrgChgResPrgOnClose[timerBtch])
 						{
-						MsgBox, 8192, PID Check, % "PID for " . PrgChoiceNames[timerBtch] . " never existed!"
-						timerBtch := PrgBatchIni%btchPrgPresetSel%[A_Index]
+							if PrgMonPID.delete(timerfTemp)
+							{
+								if (temp := RevertResLastPrgProc(maxBatchPrgs, PrgMonPID, btchPIDUserClose))
+								{
+									if (DefResNoMatchRes())
+									{
+									RevertResdefaults()
+									ChangeResolution(dispMonNames, regoVar, temp)
+									sleep, 1000
+									}
+								}
+							}
+							else
+							MsgBox, 8192, PID Check, % "PID for " . PrgChoiceNames[timerBtch] . " never existed!"
 						}
 					}
+
 				}
 
 				if(!timerBtch)

		}
	}

	if (temp := RevertResLastPrgProc(maxBatchPrgs, PrgMonPID))
	{
		if (DefResNoMatchRes())
		{
		RevertResdefaults()
		ChangeResolution(dispMonNames, regoVar, temp)
		sleep, 1000
		}
	}

SetTitleMatchMode, 3
If (WinWaiter(presetNoTest, PrgLnch.Title, PrgLnchOpt.Title, waitBreak))

boundListBtchCtl := 0 ; PrgList sel or Updown toggle
btchPrgPresetSel := 0 ;What preset is currently selected- 0 for none
PrgBatchIniStartup := 0 ;Batch Preset read from Startup
btchPIDUserClose := 0 ; Save a PID just closed by user
btchSelPowerIndex := 0 ; Active power name for batch preset
maxBatchPrgs := 6
batchActive := 0 ; (1) Batch is Active for current Preset (-1) flagged for Not Active (0) Not active (2) Batch active at start
