@@ -4,10 +4,11 @@
 #See the file COPYING for more details.
 #Copyright (C) 2010-2012 NV Access Limited
 
-"""App module for SecureCRT
+"""App module for automatic reading of the terminal in all versions of SecureCRT
 """
 
 import oleacc
+import re
 from NVDAObjects.behaviors import Terminal
 from NVDAObjects.window import DisplayModelEditableText, DisplayModelLiveText
 import appModuleHandler
#appModules/securecrt.py
#A part of NonVisual Desktop Access (NVDA)
#This file is covered by the GNU General Public License.
#See the file COPYING for more details.
#Copyright (C) 2010-2012 NV Access Limited

"""App module for SecureCRT
"""

import oleacc
from NVDAObjects.behaviors import Terminal
from NVDAObjects.window import DisplayModelEditableText, DisplayModelLiveText
import appModuleHandler

class AppModule(appModuleHandler.AppModule):

	def chooseNVDAObjectOverlayClasses(self, obj, clsList):
		if obj.windowClassName in ("AfxFrameOrView80u", "AfxFrameOrView90u", "AfxFrameOrView100u") and obj.IAccessibleRole == oleacc.ROLE_SYSTEM_CLIENT:
			try:
				clsList.remove(DisplayModelEditableText)
			except ValueError:
				pass
			clsList[0:0] = (Terminal, DisplayModelLiveText)

Thanks for your work! It'd be better to compile the regexp once as a constant and reuse it, rather than compiling every time we need to match. You can do this using the `re.compile` function and then call the `.match` method on the compiled object.