diff --git a/Tools/scripts/fixheader.py b/Tools/scripts/fixheader.py
new file mode 100755
index 0000000..8f121fa
--- /dev/null
+++ b/Tools/scripts/fixheader.py
@@ -0,0 +1,49 @@
+#! /usr/local/bin/python
+
+# Add some standard cpp magic to a header file
+
+import sys
+import string
+
+def main():
+	args = sys.argv[1:]
+	for file in args:
+		process(file)
+
+def process(file):
+	try:
+		f = open(file, 'r')
+	except IOError, msg:
+		sys.stderr.write('%s: can\'t open: %s\n' % (file, str(msg)))
+		return
+	data = f.read()
+	f.close()
+	if data[:2] <> '/*':
+		sys.stderr.write('%s does not begin with C comment\n' % file)
+		return
+	try:
+		f = open(file, 'w')
+	except IOError, msg:
+		sys.stderr.write('%s: can\'t write: %s\n' % (file, str(msg)))
+		return
+	sys.stderr.write('Processing %s ...\n' % file)
+	magic = 'Py_'
+	for c in file:
+		if c in string.letters + string.digits:
+			magic = magic + string.upper(c)
+		else: magic = magic + '_'
+	sys.stdout = f
+	print '#ifndef', magic
+	print '#define', magic
+	print '#ifdef __cplusplus'
+	print 'extern "C" {'
+	print '#endif'
+	print
+	f.write(data)
+	print
+	print '#ifdef __cplusplus'
+	print '}'
+	print '#endif'
+	print '#endif /*', '!'+magic, '*/'
+
+main()
