diff --git a/Lib/find.py b/Lib/find.py
new file mode 100644
index 0000000..ccd9fdb
--- /dev/null
+++ b/Lib/find.py
@@ -0,0 +1,26 @@
+import fnmatch
+import os
+
+_debug = 0
+
+_prune = ['(*)']
+
+def find(pattern, dir = os.curdir):
+	list = []
+	names = os.listdir(dir)
+	names.sort()
+	for name in names:
+		if name in (os.curdir, os.pardir):
+			continue
+		fullname = os.path.join(dir, name)
+		if fnmatch.fnmatch(name, pattern):
+			list.append(fullname)
+		if os.path.isdir(fullname) and not os.path.islink(fullname):
+			for p in _prune:
+				if fnmatch.fnmatch(name, p):
+					if _debug: print "skip", `fullname`
+					break
+			else:
+				if _debug: print "descend into", `fullname`
+				list = list + find(pattern, fullname)
+	return list
