diff --git a/Demo/stdwin/ibrowse/ibrowse.py b/Demo/stdwin/ibrowse/ibrowse.py
index 41574ad..eec5eb7 100755
--- a/Demo/stdwin/ibrowse/ibrowse.py
+++ b/Demo/stdwin/ibrowse/ibrowse.py
@@ -489,7 +489,7 @@
 	#
 	if win.file and win.node:
 		lastnode = '(' + win.file + ')' + win.node
-		win.last.append(lastnode, win.textobj.getfocus())
+		win.last.append((lastnode, win.textobj.getfocus()))
 	win.file = file
 	win.node = node
 	win.header = header
diff --git a/Demo/stdwin/ibrowse/ifile.py b/Demo/stdwin/ibrowse/ifile.py
index 1ea880e..9447164 100755
--- a/Demo/stdwin/ibrowse/ifile.py
+++ b/Demo/stdwin/ibrowse/ifile.py
@@ -126,7 +126,7 @@
 			topic, ref = text[a1:b1], text[a2:b2]
 			if ref == ':':
 				ref = topic
-			menu.append(topic, ref)
+			menu.append((topic, ref))
 	#
 	# Get the footnotes
 	#
@@ -140,7 +140,7 @@
 		topic, ref = text[a1:b1], text[a2:b2]
 		if ref == ':':
 			ref = topic
-		footnotes.append(topic, ref)
+		footnotes.append((topic, ref))
 	#
 	return node, (prev, next, up), menu, footnotes
 #
diff --git a/Demo/stdwin/ibrowse/itags.py b/Demo/stdwin/ibrowse/itags.py
index f30f3fd..7cddcfa 100755
--- a/Demo/stdwin/ibrowse/itags.py
+++ b/Demo/stdwin/ibrowse/itags.py
@@ -94,7 +94,7 @@
 		(a,b), (a1,b1), (a2,b2) = match
 		file = buf[a1:b1]
 		offset = eval(buf[a2:b2]) # XXX What if this gets overflow?
-		list.append(file, offset)
+		list.append((file, offset))
 		i = b
 	return list
 
diff --git a/Demo/stdwin/wdiff.py b/Demo/stdwin/wdiff.py
index b8c8da3..50ca032 100755
--- a/Demo/stdwin/wdiff.py
+++ b/Demo/stdwin/wdiff.py
@@ -95,7 +95,7 @@
 		if x in ['./', '../']:
 			pass
 		elif x not in b_list:
-			a_only.append(x, a_only_action)
+			a_only.append((x, a_only_action))
 		else:
 			ax = os.path.join(a, x)
 			bx = os.path.join(b, x)
@@ -110,15 +110,15 @@
 				except (RuntimeError, os.error):
 					same = 0
 			if same:
-				ab_same.append(x, ab_same_action)
+				ab_same.append((x, ab_same_action))
 			else:
-				ab_diff.append(x, ab_diff_action)
+				ab_diff.append((x, ab_diff_action))
 	#
 	for x in b_list:
 		if x in ['./', '../']:
 			pass
 		elif x not in a_list:
-			b_only.append(x, b_only_action)
+			b_only.append((x, b_only_action))
 	#
 	return data
 
