constant kExceptionList := 
'{
	alphaKeyboard:					"Typewriter Keyboard",
	AutoAdd:						"Recently Written Words",
	busyDialog:						"Trying by Letter",
	callOptionsSlip:				"Will Dial",
	|Config:GestureLaunch3:ICS|:	"GestureLaunch Config",
	correct:						"Corrector",
	dateKeyboard:					"Time/Date Keyboard",
	|EnRouteXTN:POPList:LRT|: 		"POP List Manager",
	|ExtrasLayout:SBM|:				"Extras Layout",
	findOverview:					"Find Results",
	manualDialingForm:				"Manually Connect",
	netChooser:						"Chooser",
	numericKeyboard:				"Numeric Keyboard",
	phoneKeyboard:					"Phone Keyboard",
	pleaseWaitForm:					"Please Wait...",
	printerSerialPicker:			"Select a Printer",
	printProblem:					"Printing Problem",
	remindSlip:						"To Do Task",
	reviewDict:						"Personal Word List",
	SoundRecorder:					"Sound Recorder",
	zoneChooser:					"Chooser",
};

DefConst('myGetAppName,
	func(symbol)
	begin
		if symbol = 'copperfield then // a book
			return GetRoot().copperfield.title;
		if symbol = 'cardfile then // this is to handle Owner Info
			return GetRoot().cardfile.title;
		if kExceptionList.(symbol) then
			return kExceptionList.(symbol);
		
		local cache := GetGlobalVar(kNameCache);
		if cache.(symbol) then
			return cache.(symbol);
		local infoFrame := call kSetExtrasInfoFunc with ({appSymbol: symbol}, '{});
		cache.(symbol) :=
			if infoFrame and infoFrame.text then
				infoFrame.text
			else
				SymbolName(symbol);
		cache.(symbol);
	end);

