diff --git a/Lib/lib-stdwin/Split.py b/Lib/lib-stdwin/Split.py
index c442fe3..63f5d5f 100644
--- a/Lib/lib-stdwin/Split.py
+++ b/Lib/lib-stdwin/Split.py
@@ -1,5 +1,7 @@
 # Generic Split implementation.
 # Use as a base class for other splits.
+# Derived classes should at least implement the methods that call
+# unimpl() below: minsize(), getbounds() and setbounds().
 
 Error = 'Split.Error'	# Exception
 
@@ -23,21 +25,22 @@
 	# Downcalls from parent to child
 	#
 	def destroy(self):
-		self.parent = 0
+		self.parent = None
 		for child in self.children:
 			child.destroy()
-		self.children[:] = []
-		self.mouse_interest[:] = []
-		self.timer_interest[:] = []
-		self.mouse_focus = 0
+		del self.children[:]
+		del self.mouse_interest[:]
+		del self.timer_interest[:]
+		self.mouse_focus = None
 	#
 	def minsize(self, m): return unimpl()
 	def getbounds(self): return unimpl()
 	def setbounds(self, bounds): unimpl()
-	def draw(self, args):
+	#
+	def draw(self, d_detail):
 		# (Could avoid calls to children outside the area)
 		for child in self.children:
-			child.draw(args)
+			child.draw(d_detail)
 	#
 	# Downcalls only made after certain upcalls
 	#
@@ -107,7 +110,7 @@
 	#
 	def change(self, area):
 		self.parent.change(area)
-	def scroll(self, args):
-		self.parent.scroll(args)
+	def scroll(self, area_vector):
+		self.parent.scroll(area_vector)
 	def settimer(self, itimer):
 		self.parent.settimer(itimer)
diff --git a/Lib/stdwin/Split.py b/Lib/stdwin/Split.py
index c442fe3..63f5d5f 100755
--- a/Lib/stdwin/Split.py
+++ b/Lib/stdwin/Split.py
@@ -1,5 +1,7 @@
 # Generic Split implementation.
 # Use as a base class for other splits.
+# Derived classes should at least implement the methods that call
+# unimpl() below: minsize(), getbounds() and setbounds().
 
 Error = 'Split.Error'	# Exception
 
@@ -23,21 +25,22 @@
 	# Downcalls from parent to child
 	#
 	def destroy(self):
-		self.parent = 0
+		self.parent = None
 		for child in self.children:
 			child.destroy()
-		self.children[:] = []
-		self.mouse_interest[:] = []
-		self.timer_interest[:] = []
-		self.mouse_focus = 0
+		del self.children[:]
+		del self.mouse_interest[:]
+		del self.timer_interest[:]
+		self.mouse_focus = None
 	#
 	def minsize(self, m): return unimpl()
 	def getbounds(self): return unimpl()
 	def setbounds(self, bounds): unimpl()
-	def draw(self, args):
+	#
+	def draw(self, d_detail):
 		# (Could avoid calls to children outside the area)
 		for child in self.children:
-			child.draw(args)
+			child.draw(d_detail)
 	#
 	# Downcalls only made after certain upcalls
 	#
@@ -107,7 +110,7 @@
 	#
 	def change(self, area):
 		self.parent.change(area)
-	def scroll(self, args):
-		self.parent.scroll(args)
+	def scroll(self, area_vector):
+		self.parent.scroll(area_vector)
 	def settimer(self, itimer):
 		self.parent.settimer(itimer)
