diff --git a/Lib/lib-stdwin/tablewin.py b/Lib/lib-stdwin/tablewin.py
index 05a954e..f9ab907 100644
--- a/Lib/lib-stdwin/tablewin.py
+++ b/Lib/lib-stdwin/tablewin.py
@@ -16,6 +16,7 @@
 
 import stdwin
 import gwin
+from stdwinevents import *
 
 def open(title, data): # Public function to open a table window
 	#
@@ -163,15 +164,13 @@
 	return len(w.data)
 
 def arrow(w, type):
-	import stdwinsupport
-	S = stdwinsupport
-	if type = S.wc_left:
+	if type = WC_LEFT:
 		incr = -1, 0
-	elif type = S.wc_up:
+	elif type = WC_UP:
 		incr = 0, -1
-	elif type = S.wc_right:
+	elif type = WC_RIGHT:
 		incr = 1, 0
-	elif type = S.wc_down:
+	elif type = WC_DOWN:
 		incr = 0, 1
 	else:
 		return
diff --git a/Lib/lib-stdwin/textwin.py b/Lib/lib-stdwin/textwin.py
index a003a9a..778717f 100644
--- a/Lib/lib-stdwin/textwin.py
+++ b/Lib/lib-stdwin/textwin.py
@@ -3,10 +3,8 @@
 # Text windows, a subclass of gwin
 
 import stdwin
-import stdwinsupport
 import gwin
-
-S = stdwinsupport			# Shorthand
+from stdwinevents import *
 
 
 def fixsize(w):
@@ -68,7 +66,7 @@
 	fixsize(w)
 
 def backspace(w):			# Backspace method
-	void = w.text.event(S.we_command, w, S.wc_backspace)
+	void = w.text.event(WE_COMMAND, w, WC_BACKSPACE)
 	fixsize(w)
 
 def arrow(w, detail):			# Arrow method
@@ -76,14 +74,14 @@
 	fixeditmenu(w)
 
 def mdown(w, detail):			# Mouse down method
-	void = w.text.event(S.we_mouse_down, w, detail)
+	void = w.text.event(WE_MOUSE_DOWN, w, detail)
 	fixeditmenu(w)
 
 def mmove(w, detail):			# Mouse move method
-	void = w.text.event(S.we_mouse_move, w, detail)
+	void = w.text.event(WE_MOUSE_MOVE, w, detail)
 
 def mup(w, detail):			# Mouse up method
-	void = w.text.event(S.we_mouse_up, w, detail)
+	void = w.text.event(WE_MOUSE_UP, w, detail)
 	fixeditmenu(w)
 
 def activate(w):			# Activate method
