Initial revision
diff --git a/Tools/scripts/checkpyc.py b/Tools/scripts/checkpyc.py
new file mode 100755
index 0000000..152fb1d
--- /dev/null
+++ b/Tools/scripts/checkpyc.py
@@ -0,0 +1,69 @@
+# Check that all ".pyc" files exist and are up-to-date
+# Uses module 'posix'
+
+import sys
+import posix
+import path
+from stat import ST_MTIME
+
+def main():
+	silent = 0
+	verbose = 0
+	if sys.argv[1:]:
+		if sys.argv[1] = '-v':
+			verbose = 1
+		elif sys.argv[1] = '-s':
+			silent = 1
+	MAGIC = '\0\0\0\0'
+	try:
+		if sys.version[:5] >= '0.9.4':
+			MAGIC = '\224\224\224\0'
+	except:
+		pass
+	if not silent:
+		print 'Using MAGIC word', `MAGIC`
+	for dirname in sys.path:
+		try:
+			names = posix.listdir(dirname)
+		except posix.error:
+			print 'Cannot list directory', `dirname`
+			continue
+		if not silent:
+			print 'Checking', `dirname`, '...'
+		names.sort()
+		for name in names:
+			if name[-3:] = '.py':
+				name = path.join(dirname, name)
+				try:
+					st = posix.stat(name)
+				except posix.error:
+					print 'Cannot stat', `name`
+					continue
+				if verbose:
+					print 'Check', `name`, '...'
+				name_c = name + 'c'
+				try:
+					f = open(name_c, 'r')
+				except IOError:
+					print 'Cannot open', `name_c`
+					continue
+				magic_str = f.read(4)
+				mtime_str = f.read(4)
+				f.close()
+				if magic_str <> MAGIC:
+					print 'Bad MAGIC word in ".pyc" file',
+					print `name_c`
+					continue
+				mtime = get_long(mtime_str)
+				if mtime = 0 or mtime = -1:
+					print 'Bad ".pyc" file', `name_c`
+				elif mtime <> st[ST_MTIME]:
+					print 'Out-of-date ".pyc" file',
+					print `name_c`
+
+def get_long(s):
+	if len(s) <> 4:
+		return -1
+	return ord(s[0]) + (ord(s[1])<<8) + (ord(s[2])<<16) + (ord(s[3])<<24)
+
+main()
diff --git a/Tools/scripts/copytime.py b/Tools/scripts/copytime.py
new file mode 100755
index 0000000..a288c09
--- /dev/null
+++ b/Tools/scripts/copytime.py
@@ -0,0 +1,25 @@
+#! /usr/local/python
+
+# Copy one file's atime and mtime to another
+
+import sys
+import posix
+from stat import ST_ATIME, ST_MTIME # Really constants 7 and 8
+
+def main():
+	if len(sys.argv) <> 3:
+		sys.stderr.write('usage: copytime source destination\n')
+		sys.exit(2)
+	file1, file2 = sys.argv[1], sys.argv[2]
+	try:
+		stat1 = posix.stat(file1)
+	except posix.error:
+		sys.stderr.write(file1 + ': cannot stat\n')
+		sys.exit(1)
+	try:
+		posix.utime(file2, (stat1[ST_ATIME], stat1[ST_MTIME]))
+	except posix.error:
+		sys.stderr.write(file2 + ': cannot change time\n')
+		sys.exit(2)
+
+main()