--- /usr/lib/python2.5/site-packages/django/bin/make-messages.py	2007-03-12 09:35:15.000000000 +0100
+++ /home/nelchael/make-messages.py	2007-06-30 23:08:35.000000000 +0200
@@ -103,8 +103,8 @@
                         open(os.path.join(dirpath, '%s.py' % file), "wb").write(templatize(src))
                         thefile = '%s.py' % file
                     if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
-                    cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy --from-code UTF-8 -o - "%s"' % (
-                        os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile))
+                    cmd = 'xgettext -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy --from-code UTF-8 -o - "%s"' % (
+                        domain, os.path.join(dirpath, thefile))
                     (stdin, stdout, stderr) = os.popen3(cmd, 'b')
                     msgs = stdout.read()
                     errors = stderr.read()
@@ -116,13 +116,19 @@
                         old = '#: '+os.path.join(dirpath, thefile)[2:]
                         new = '#: '+os.path.join(dirpath, file)[2:]
                         msgs = msgs.replace(old, new)
+                    if os.path.exists(potfile):
+                        # Strip the header!
+                        tmpmsg = msgs.split('\n')[17:]
+                        msgs = '\n'.join(tmpmsg)
+                    else:
+                        msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8')
                     if msgs:
                         open(potfile, 'ab').write(msgs)
                     if thefile != file:
                         os.unlink(os.path.join(dirpath, thefile))
 
         if os.path.exists(potfile):
-            (stdin, stdout, stderr) = os.popen3('msguniq "%s"' % potfile, 'b')
+            (stdin, stdout, stderr) = os.popen3('msguniq --to-code=utf-8 "%s"' % potfile, 'b')
             msgs = stdout.read()
             errors = stderr.read()
             if errors:
