diff -r a5f7fbadb6e8 urwid/listbox.py
--- a/urwid/listbox.py	Sun Sep 07 16:13:33 2008 -0400
+++ b/urwid/listbox.py	Fri Nov 07 09:56:14 2008 -0800
@@ -34,6 +34,8 @@
 	__metaclass__ = signals.MetaSignals
 	
 	signals = ["modified"]
+
+	def __hash__(self): return id(self)
 
 	def _modified(self):
 		signals.emit_signal(self, "modified")
@@ -95,6 +97,8 @@
 			raise ListWalkerError, "SimpleListWalker expecting list like object, got: "+`contents`
 		MonitoredList.__init__(self, contents)
 		self.focus = 0
+
+	def __hash__(self): return id(self)
 	
 	def _get_contents(self):
 		"""
diff -r a5f7fbadb6e8 urwid/monitored_list.py
--- a/urwid/monitored_list.py	Sun Sep 07 16:13:33 2008 -0400
+++ b/urwid/monitored_list.py	Fri Nov 07 09:56:14 2008 -0800
@@ -20,9 +20,6 @@
 # Urwid web site: http://excess.org/urwid/
 
 
-from UserList import UserList
-
-
 def _call_modified(fn):
 	def call_modified_wrapper(self, *args):
 		rval = fn(self, *args)
@@ -30,7 +27,7 @@
 		return rval
 	return call_modified_wrapper
 
-class MonitoredList(UserList):
+class MonitoredList(list):
 	def _modified(self):
 		pass
 	
@@ -40,20 +37,20 @@
 	def __repr__(self):
 		return "%s.%s(%s)" % (self.__class__.__module__,
 			self.__class__.__name__,
-			UserList.__repr__(self))
+			list.__repr__(self))
 
-	__add__ = _call_modified(UserList.__add__)
-	__delitem__ = _call_modified(UserList.__delitem__)
-	__delslice__ = _call_modified(UserList.__delslice__)
-	__iadd__ = _call_modified(UserList.__iadd__)
-	__imul__ = _call_modified(UserList.__imul__)
-	__rmul__ = _call_modified(UserList.__rmul__)
-	__setitem__ = _call_modified(UserList.__setitem__)
-	__setslice__ = _call_modified(UserList.__setslice__)
-	append = _call_modified(UserList.append)
-	extend = _call_modified(UserList.extend)
-	insert = _call_modified(UserList.insert)
-	pop = _call_modified(UserList.pop)
-	remove = _call_modified(UserList.remove)
-	reverse = _call_modified(UserList.reverse)
-	sort = _call_modified(UserList.sort)
+	__add__ = _call_modified(list.__add__)
+	__delitem__ = _call_modified(list.__delitem__)
+	__delslice__ = _call_modified(list.__delslice__)
+	__iadd__ = _call_modified(list.__iadd__)
+	__imul__ = _call_modified(list.__imul__)
+	__rmul__ = _call_modified(list.__rmul__)
+	__setitem__ = _call_modified(list.__setitem__)
+	__setslice__ = _call_modified(list.__setslice__)
+	append = _call_modified(list.append)
+	extend = _call_modified(list.extend)
+	insert = _call_modified(list.insert)
+	pop = _call_modified(list.pop)
+	remove = _call_modified(list.remove)
+	reverse = _call_modified(list.reverse)
+	sort = _call_modified(list.sort)
