diff --git a/py/makeqstrdata.py b/py/makeqstrdata.py
index dbafd47..c5ad708 100644
--- a/py/makeqstrdata.py
+++ b/py/makeqstrdata.py
@@ -1,6 +1,12 @@
 import argparse
 import re
-from htmlentitydefs import codepoint2name
+
+# codepoint2name is different in Python 2 to Python 3
+import platform
+if platform.python_version_tuple()[0] == '2':
+    from htmlentitydefs import codepoint2name
+elif platform.python_version_tuple()[0] == '3':
+    from html.entities import codepoint2name
 
 # this must match the equivalent function in qstr.c
 def compute_hash(qstr):
@@ -37,13 +43,13 @@
                 if ident in qstrs:
                     continue
 
-                # add the qstr to the list
-                qstrs[ident] = qstr
+                # add the qstr to the list, with order number to retain original order in file
+                qstrs[ident] = (len(qstrs), ident, qstr)
 
     # process the qstrs, printing out the generated C header file
     print('// This file was automatically generated by makeqstrdata.py')
     print('')
-    for ident, qstr in qstrs.items():
+    for order, ident, qstr in sorted(qstrs.values(), key=lambda x: x[0]):
         qhash = compute_hash(qstr)
         qlen = len(qstr)
         print('Q({}, (const byte*)"\\x{:02x}\\x{:02x}\\x{:02x}\\x{:02x}" "{}")'.format(ident, qhash & 0xff, (qhash >> 8) & 0xff, qlen & 0xff, (qlen >> 8) & 0xff, qstr))
