diff --git a/bare-arm/main.c b/bare-arm/main.c
index 8ad9b15870c2921d328a2420ddaad142fec97570..bdaded436242b03ba5ab9004b87ef6b3dc148ce5 100644
--- a/bare-arm/main.c
+++ b/bare-arm/main.c
@@ -2,9 +2,9 @@
 #include <stdio.h>
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "lexer.h"
 #include "parse.h"
diff --git a/py/argcheck.c b/py/argcheck.c
index bfaa5764f5c1075fdeef0bbf7b8c13aed6240784..4b849d1fe89b80c8bc63f0651c743dc87b7a65a5 100644
--- a/py/argcheck.c
+++ b/py/argcheck.c
@@ -1,9 +1,9 @@
 #include <stdlib.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/builtin.c b/py/builtin.c
index b586792020a08ea05f973f8bc718ee79e38f3311..5ff40be0c21f89b6e5f601590b8a9987f329d115 100644
--- a/py/builtin.c
+++ b/py/builtin.c
@@ -1,9 +1,9 @@
 #include <stdio.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "objstr.h"
diff --git a/py/builtinevex.c b/py/builtinevex.c
index ae82537374bc5cb4483c09b592cff69633dc95eb..bc3adb625626aa50d031b5b23e72b16e25d7a9cc 100644
--- a/py/builtinevex.c
+++ b/py/builtinevex.c
@@ -1,8 +1,8 @@
 #include <stdint.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "lexer.h"
 #include "lexerunix.h"
diff --git a/py/builtinimport.c b/py/builtinimport.c
index 07978e61d7e9893a0d29f485864b143ad87fef93..323b63ef61d14a80438fde978dff8d190267e250 100644
--- a/py/builtinimport.c
+++ b/py/builtinimport.c
@@ -8,9 +8,9 @@
 #include <malloc.h>
 #endif
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "lexer.h"
 #include "lexerunix.h"
diff --git a/py/nlr.h b/py/nlr.h
index c7b5928430af34e10be30d47fe764d86afb6ec95..757ae61b2f8df04f6d74d7c86301edbccfd78b0c 100644
--- a/py/nlr.h
+++ b/py/nlr.h
@@ -3,7 +3,6 @@
 
 #include <limits.h>
 #include <setjmp.h>
-#include "mpconfig.h"
 
 typedef struct _nlr_buf_t nlr_buf_t;
 struct _nlr_buf_t {
diff --git a/py/nlrsetjmp.c b/py/nlrsetjmp.c
index a97c8634b2d83c2d54679a724df885f3ce19c3fb..a8756d9d879bac80f35a1eced75bc07a83975d34 100644
--- a/py/nlrsetjmp.c
+++ b/py/nlrsetjmp.c
@@ -1,5 +1,6 @@
 #include <setjmp.h>
 #include <stdio.h>
+#include "mpconfig.h"
 #include "nlr.h"
 
 #if MICROPY_NLR_SETJMP
diff --git a/py/obj.c b/py/obj.c
index 4b72514476e71c01720d60e1c12914f70acf8114..e1cee3c2340b866f4b92e15fb52f4f14b23800fa 100644
--- a/py/obj.c
+++ b/py/obj.c
@@ -2,9 +2,9 @@
 #include <stdarg.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/objarray.c b/py/objarray.c
index ea3765576227377e711834435777f003158a4f95..428e619723737b24f6381769d1e1a446ed6ae511 100644
--- a/py/objarray.c
+++ b/py/objarray.c
@@ -1,9 +1,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/objbool.c b/py/objbool.c
index 56020914d0f7177d5e153f1a350494936a5b7c10..c479fd36290392b6f67826ffe5405da38a130b06 100644
--- a/py/objbool.c
+++ b/py/objbool.c
@@ -1,8 +1,8 @@
 #include <stdlib.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/objboundmeth.c b/py/objboundmeth.c
index 55b75e42cd5d7f6f1995b19eaef1d2f9599ef78d..346118d518ecef84d0c4e4d65e7bd3d1badd0d34 100644
--- a/py/objboundmeth.c
+++ b/py/objboundmeth.c
@@ -1,8 +1,8 @@
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objcell.c b/py/objcell.c
index 7fdf07b046d97f6efea72ce367b9b316bbd39c71..488a73797148e8ce0debd961b87733e42acae6bb 100644
--- a/py/objcell.c
+++ b/py/objcell.c
@@ -1,6 +1,6 @@
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objclosure.c b/py/objclosure.c
index 09371b0348fd10e1235f148e39856147b9bcf5bd..ca7c537f09df6c811f92f6826b8e7ea42956b43e 100644
--- a/py/objclosure.c
+++ b/py/objclosure.c
@@ -1,8 +1,8 @@
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "objtuple.h"
diff --git a/py/objcomplex.c b/py/objcomplex.c
index 924420964785dcf20223a72a3b7fe8e2a7839860..45cff6a184f87e62b6728d88ea511223f1eb4a92 100644
--- a/py/objcomplex.c
+++ b/py/objcomplex.c
@@ -1,9 +1,9 @@
 #include <stdlib.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "parsenum.h"
diff --git a/py/objdict.c b/py/objdict.c
index 0654a198ea23c397f60ab464353127731d7d5df5..334798c372928aeb764608d40fefc4761f60e6a3 100644
--- a/py/objdict.c
+++ b/py/objdict.c
@@ -2,9 +2,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "objtuple.h"
diff --git a/py/objexcept.c b/py/objexcept.c
index 7fd00c11c7a971c4b8db2aebd4cdaece71bddbe3..abf56ab0360ab00ee4f774cbb503f870b74c2fb6 100644
--- a/py/objexcept.c
+++ b/py/objexcept.c
@@ -2,9 +2,9 @@
 #include <stdarg.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "objtuple.h"
diff --git a/py/objfilter.c b/py/objfilter.c
index 3eacdfc9b7bf0f022c697c460ecf6e8b00b7d82b..37cb269adc451831bc7773d8ca6985ccfbe69a82 100644
--- a/py/objfilter.c
+++ b/py/objfilter.c
@@ -1,9 +1,9 @@
 #include <stdlib.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objfloat.c b/py/objfloat.c
index 92491605792efde2bdd459320294d686c8555a53..14d861b66f174c35b2d606eaabdef7502200ab67 100644
--- a/py/objfloat.c
+++ b/py/objfloat.c
@@ -4,9 +4,9 @@
 #include <assert.h>
 #include <math.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "parsenum.h"
diff --git a/py/objfun.c b/py/objfun.c
index 7a1c3ff15ae115b4ca73aaf0827a1d8fdaea229d..e0c25771e10e713f043efe9290a9619bda265c3f 100644
--- a/py/objfun.c
+++ b/py/objfun.c
@@ -7,9 +7,9 @@
 #include <malloc.h>
 #endif
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "objtuple.h"
diff --git a/py/objgenerator.c b/py/objgenerator.c
index d02f838afeb9b5c37a10689576423d084926ba4c..d7d6dcaaf4bb97c2963ed60a78d1326d8938ff68 100644
--- a/py/objgenerator.c
+++ b/py/objgenerator.c
@@ -1,9 +1,9 @@
 #include <stdlib.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objgetitemiter.c b/py/objgetitemiter.c
index faa8321c34a0535bbadf24263b8583b30b76d2fe..15676b452b14974209e7c6f2a68591f3399f672e 100644
--- a/py/objgetitemiter.c
+++ b/py/objgetitemiter.c
@@ -1,8 +1,8 @@
 #include <stdlib.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objint.c b/py/objint.c
index 110876e003ba7ee3099b36d56814b3dca065514f..bec4e920fd3d57430ccd18fbbbb36db3f84478cc 100644
--- a/py/objint.c
+++ b/py/objint.c
@@ -3,9 +3,9 @@
 #include <assert.h>
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "parsenum.h"
diff --git a/py/objint_longlong.c b/py/objint_longlong.c
index 7d71c5a69173ae18f94e9954b17fcc5a119ea521..d319e274631e308aaee86250826eb2d53f51c8b4 100644
--- a/py/objint_longlong.c
+++ b/py/objint_longlong.c
@@ -2,9 +2,9 @@
 #include <stdint.h>
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "mpz.h"
diff --git a/py/objint_mpz.c b/py/objint_mpz.c
index b94dcfee37191c772f2ec776a53727b18ce905a9..bfc7def357bd8a56f65d45b1b3f24e3b3cf1e64b 100644
--- a/py/objint_mpz.c
+++ b/py/objint_mpz.c
@@ -3,9 +3,9 @@
 #include <stdio.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "parsenumbase.h"
 #include "obj.h"
diff --git a/py/objlist.c b/py/objlist.c
index 0c55f524da39b7c5f8fa446e1edc9a4bfc2c8d7f..d886affff8f99e591710183f1eaa53407042c246 100644
--- a/py/objlist.c
+++ b/py/objlist.c
@@ -1,9 +1,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/objmap.c b/py/objmap.c
index 45e65549da71a15f2501a03c47e2a6d93bf3a2cb..c6f8f16572d5d5a1e85fbed8e1f4c85898cd0150 100644
--- a/py/objmap.c
+++ b/py/objmap.c
@@ -1,9 +1,9 @@
 #include <stdlib.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objmodule.c b/py/objmodule.c
index 15ccd68ac2ff491a6ab96d5210a7b14a27582c11..d4a45b84a5033b81ce51c86ce2070982b55c138b 100644
--- a/py/objmodule.c
+++ b/py/objmodule.c
@@ -1,9 +1,9 @@
 #include <stdlib.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "objmodule.h"
diff --git a/py/objnamedtuple.c b/py/objnamedtuple.c
index 42399835891ff389670ee2ddf138cf2a49a30efb..99a1d7bb9d61c6e274a73d8a6b85356a09a6a66d 100644
--- a/py/objnamedtuple.c
+++ b/py/objnamedtuple.c
@@ -1,7 +1,7 @@
 #include <string.h>
 
-#include "misc.h"
 #include "mpconfig.h"
+#include "misc.h"
 #include "nlr.h"
 #include "qstr.h"
 #include "obj.h"
diff --git a/py/objnone.c b/py/objnone.c
index fc55132f39763ed513451a33c1a81927ac2932ea..49b726bddee2108caaf7b045959aa2a60bc01fb4 100644
--- a/py/objnone.c
+++ b/py/objnone.c
@@ -1,8 +1,8 @@
 #include <stdlib.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/objobject.c b/py/objobject.c
index 74a4926b3404ab02a6bb325be6eb128ee7c7d473..62fd0c4c9afeabd00c7cde31f38d9ac3231d4347 100644
--- a/py/objobject.c
+++ b/py/objobject.c
@@ -1,8 +1,8 @@
 #include <stdlib.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/objproperty.c b/py/objproperty.c
index dd4eedebdb4a34a0988ea0660d5775ca1614b72e..220388df0a2d9b117730830d6c4f78a0b2fd3425 100644
--- a/py/objproperty.c
+++ b/py/objproperty.c
@@ -1,9 +1,9 @@
 #include <stdlib.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objrange.c b/py/objrange.c
index 8c0eadd32e32fcda87be833a4c77b28f2c6e90ba..acfeed7d9c541a8a2dbf1eddad9f919a4c8fa8ab 100644
--- a/py/objrange.c
+++ b/py/objrange.c
@@ -1,8 +1,8 @@
 #include <stdlib.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objset.c b/py/objset.c
index db3683f608fcabecce132318fbd760246644d576..1d10f94e8166c19189c6729e21bcee50d1a63ba6 100644
--- a/py/objset.c
+++ b/py/objset.c
@@ -2,9 +2,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objslice.c b/py/objslice.c
index 924927db5f330cd74dee69529b92d6bc82133392..0488eb4220ea59f8b4a60c83286ab1baf3c41654 100644
--- a/py/objslice.c
+++ b/py/objslice.c
@@ -1,9 +1,9 @@
 #include <stdlib.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/objstr.c b/py/objstr.c
index aab1a4492c5785219d61f81258f41a88632baacf..fc7415fe15e1beb7daf78828a5a248c46fd1f354 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -2,9 +2,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/objstringio.c b/py/objstringio.c
index a3a7566300cecee2303897d33ab4d602ccf56051..8b3dfaf61ef704b402c5fa5bf874b57472af83d8 100644
--- a/py/objstringio.c
+++ b/py/objstringio.c
@@ -1,9 +1,9 @@
 #include <stdio.h>
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/objtuple.c b/py/objtuple.c
index e6b902d74ff48f6ab1c4511ea94026a2c556f05d..792c65193c2909c742d6017964aca4a74f88727d 100644
--- a/py/objtuple.c
+++ b/py/objtuple.c
@@ -1,9 +1,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/objtype.c b/py/objtype.c
index dfaa3ff434041431d6f4ca309b63f6731c78e721..0eb09e58329f98b1e3a8c9eea987e149dee0e2f1 100644
--- a/py/objtype.c
+++ b/py/objtype.c
@@ -3,9 +3,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
@@ -189,7 +189,7 @@ STATIC mp_obj_t class_make_new(mp_obj_t self_in, uint n_args, uint n_kw, const m
         // now call Python class __init__ function with all args
         mp_obj_t init_ret;
         if (n_args == 0 && n_kw == 0) {
-            init_ret = mp_call_function_n_kw(init_fn[0], 1, 0, (mp_obj_t*)&o);
+            init_ret = mp_call_function_n_kw(init_fn[0], 1, 0, (mp_obj_t*)(void*)&o);
         } else {
             mp_obj_t *args2 = m_new(mp_obj_t, 1 + n_args + 2 * n_kw);
             args2[0] = o;
diff --git a/py/objzip.c b/py/objzip.c
index 4c7070b7c73fada1bd20b4bf0c0ebb8851c8f563..c3bffd830d3ac89c3c867f22a19759d39343bd7d 100644
--- a/py/objzip.c
+++ b/py/objzip.c
@@ -1,8 +1,8 @@
 #include <stdlib.h>
 #include <assert.h>
 
-#include "misc.h"
 #include "mpconfig.h"
+#include "misc.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/opmethods.c b/py/opmethods.c
index a745ec1227df192b2825a89a826e738a2b865ce7..b029eef7c5ef84983ae3a20cfdb9d6b302d8c1d3 100644
--- a/py/opmethods.c
+++ b/py/opmethods.c
@@ -1,6 +1,6 @@
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/py/runtime.c b/py/runtime.c
index b56740a0228d186545858e42a8dd520c2508c9b0..2928de8a7207eef951a8bc8f039cf589b1a19cec 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -2,9 +2,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "objtuple.h"
diff --git a/py/sequence.c b/py/sequence.c
index f91bf43c742b454097b4e53f355d1a3b6a0cea67..9fce1c51ada2153cbadbe26b16c714117edb15c4 100644
--- a/py/sequence.c
+++ b/py/sequence.c
@@ -2,9 +2,9 @@
 #include <stdbool.h>
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime0.h"
diff --git a/py/showbc.c b/py/showbc.c
index e3032e8d98c2eeb85f52c26a9f0b3142ea22a273..b5b5ce44aa2a026fba3c9716da20d338d305d433 100644
--- a/py/showbc.c
+++ b/py/showbc.c
@@ -1,8 +1,8 @@
 #include <stdio.h>
 #include <assert.h>
 
-#include "misc.h"
 #include "mpconfig.h"
+#include "misc.h"
 #include "qstr.h"
 #include "bc0.h"
 
diff --git a/py/stream.c b/py/stream.c
index 72e6ab509da93a420718e5d6b8a533656613b411..113eaa46ee0a9a019cae488e6c1e47332b3fd952 100644
--- a/py/stream.c
+++ b/py/stream.c
@@ -1,8 +1,8 @@
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "stream.h"
diff --git a/py/vm.c b/py/vm.c
index d3eb970427c0670e9a883ba00f7e5b049a8211c8..f2ca91be524b1b203d3b14c868f537c474e1957b 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -2,9 +2,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "emitglue.h"
diff --git a/qemu-arm/main.c b/qemu-arm/main.c
index 6ecc9a4b2eb9ab574a374f2bba72dc4840d16513..91c096289ecae6f9440395acd3fa5bf6dd2ad117 100644
--- a/qemu-arm/main.c
+++ b/qemu-arm/main.c
@@ -2,9 +2,9 @@
 #include <stdio.h>
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "lexer.h"
 #include "parse.h"
diff --git a/stmhal/accel.c b/stmhal/accel.c
index d3373f1ebd18a583b7465961771af81b6ada6dfd..64ed8b2f1db7b5b729e0e721f7f896113e68d5bc 100644
--- a/stmhal/accel.c
+++ b/stmhal/accel.c
@@ -3,9 +3,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/stmhal/adc.c b/stmhal/adc.c
index 0cc2a9a904569397e886f9f8d2d4a50769e4ae8c..e04571abeea19cbc158f54c666ae745e5bc4ef28 100644
--- a/stmhal/adc.c
+++ b/stmhal/adc.c
@@ -2,9 +2,9 @@
 #include <stm32f4xx_hal.h>
 #include <string.h>
 
+#include "mpconfig.h"
 #include "misc.h"
 #include "nlr.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/stmhal/cc3k/pybcc3k.c b/stmhal/cc3k/pybcc3k.c
index 17b205b949a9e74a14d18910440bb503671a7513..8712a3780b20d98e1c7818e731999e3886d8fd78 100644
--- a/stmhal/cc3k/pybcc3k.c
+++ b/stmhal/cc3k/pybcc3k.c
@@ -2,9 +2,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/stmhal/dac.c b/stmhal/dac.c
index b440bcbf509ab8520f42c97f6d6ffc8c027f21b8..56674c4313cfc59d9b6f739d0ded4b8bab8225e5 100644
--- a/stmhal/dac.c
+++ b/stmhal/dac.c
@@ -3,9 +3,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "parse.h"
 #include "obj.h"
diff --git a/stmhal/extint.c b/stmhal/extint.c
index 61469e0a1735a06b52fc9d99bffe5175c179665a..90016d19a9961aa7bc48ea0676a1d8b1036fbb0d 100644
--- a/stmhal/extint.c
+++ b/stmhal/extint.c
@@ -4,9 +4,9 @@
 
 #include <stm32f4xx_hal.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "gc.h"
 #include "obj.h"
diff --git a/stmhal/help.c b/stmhal/help.c
index 975a1024456babc266aaa51b7c6ee1adc0befbc9..084d708e6eee624ec22a45b7ea5be40aeee9f920 100644
--- a/stmhal/help.c
+++ b/stmhal/help.c
@@ -1,8 +1,8 @@
 #include <stdio.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 
diff --git a/stmhal/i2c.c b/stmhal/i2c.c
index ef9da496d0c8a85d2532016dc1ae28ab50d13d3b..b8de855304cf324072167004fa558035400c75e4 100644
--- a/stmhal/i2c.c
+++ b/stmhal/i2c.c
@@ -3,9 +3,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/stmhal/input.c b/stmhal/input.c
index 0ded898667c5d65bffc05867789a8241d3fabd81..a45a36198c87269c085bc506bcbed02cb867e676 100644
--- a/stmhal/input.c
+++ b/stmhal/input.c
@@ -1,6 +1,6 @@
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "readline.h"
diff --git a/stmhal/lcd.c b/stmhal/lcd.c
index efee13d233cf395b21de4bdbf936d51d94283798..f121a93d7a939358a5e15c3590579806019c088f 100644
--- a/stmhal/lcd.c
+++ b/stmhal/lcd.c
@@ -2,9 +2,9 @@
 #include <string.h>
 #include <stm32f4xx_hal.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 
 #if MICROPY_HW_HAS_LCD
 
diff --git a/stmhal/led.c b/stmhal/led.c
index 9e32c524832a99d95fa310f36eb3c79fe95314db..264a4754847a8d8ecfee899b741fc53b204dead4 100644
--- a/stmhal/led.c
+++ b/stmhal/led.c
@@ -1,9 +1,9 @@
 #include <stdio.h>
 #include <stm32f4xx_hal.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/stmhal/modos.c b/stmhal/modos.c
index 33b4ff73e05bbedfef6a603ecebd3109fc74da83..076a28782ec50bd6b197eec9f2f02f13437c76b3 100644
--- a/stmhal/modos.c
+++ b/stmhal/modos.c
@@ -1,8 +1,8 @@
 #include <string.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "systick.h"
diff --git a/stmhal/modstm.c b/stmhal/modstm.c
index 078f590ece972e7f4c0bcef1f014a771325d8f4b..a2b72995aeaaaecfbcef62fd3cd800e3921c3f2f 100644
--- a/stmhal/modstm.c
+++ b/stmhal/modstm.c
@@ -3,9 +3,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "modstm.h"
diff --git a/stmhal/modtime.c b/stmhal/modtime.c
index 83be2deaa10ee562a797506ddf0ab628df5b2375..410c6391e25038f02a6061a01d3716dbf3e9b910 100644
--- a/stmhal/modtime.c
+++ b/stmhal/modtime.c
@@ -1,8 +1,8 @@
 #include <stm32f4xx_hal.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "modtime.h"
diff --git a/stmhal/pin.c b/stmhal/pin.c
index 608f225dae569df38677eb3474048817301d4aff..5b0f998de62a30a7607d02a7503e11a312e4ae64 100644
--- a/stmhal/pin.c
+++ b/stmhal/pin.c
@@ -4,9 +4,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/stmhal/pybwlan.c b/stmhal/pybwlan.c
index 72cb9bfd986c56bf22796b11ea1e1e17e0c66daf..06309b61c063073332afcd4449f2c83773e52ee5 100644
--- a/stmhal/pybwlan.c
+++ b/stmhal/pybwlan.c
@@ -5,9 +5,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/stmhal/pyexec.c b/stmhal/pyexec.c
index 3f9482ec589749f682fe1de0f73f38c4160ffb1e..6a8929cb4ef0e9357fac6a491c845c2ea72fd3c1 100644
--- a/stmhal/pyexec.c
+++ b/stmhal/pyexec.c
@@ -3,9 +3,9 @@
 
 #include <stm32f4xx_hal.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "misc.h"
 #include "lexer.h"
diff --git a/stmhal/servo.c b/stmhal/servo.c
index 2ebe64376ff970d390ace160e8e9b9dbe220d5be..68e211bcb3791d687203b419040ed706ee55d553 100644
--- a/stmhal/servo.c
+++ b/stmhal/servo.c
@@ -2,9 +2,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/stmhal/spi.c b/stmhal/spi.c
index ba550f979944d9b7321ad1185c550d39484769ca..c1b8e75d050cc67acd5e7a256f0d69529d08f5f1 100644
--- a/stmhal/spi.c
+++ b/stmhal/spi.c
@@ -3,9 +3,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/stmhal/uart.c b/stmhal/uart.c
index 6dc60ca084c9b35c20e799ae362ca54b90258070..04373a8840d1268f3a243c61eb6447fee0833e58 100644
--- a/stmhal/uart.c
+++ b/stmhal/uart.c
@@ -3,9 +3,9 @@
 
 #include "stm32f4xx_hal.h"
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/unix/file.c b/unix/file.c
index 041e28e95600e59560bb469c88122f38a78e7516..04305cac7aa442dacf235ba3f4444149711c4955 100644
--- a/unix/file.c
+++ b/unix/file.c
@@ -5,9 +5,9 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/unix/main.c b/unix/main.c
index 4c86edeae512c2061c36879bc2a0ad038d070a6c..e677ff65d02d5a779731726731d177bc72f48fa8 100644
--- a/unix/main.c
+++ b/unix/main.c
@@ -8,9 +8,9 @@
 #include <sys/types.h>
 #include <errno.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "lexer.h"
 #include "lexerunix.h"
diff --git a/unix/modffi.c b/unix/modffi.c
index be542625ede0488080257ef882465227c2aaa246..39551c264f1f217af7298bb3fd989e9731ec4cd1 100644
--- a/unix/modffi.c
+++ b/unix/modffi.c
@@ -4,9 +4,9 @@
 #include <dlfcn.h>
 #include <ffi.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "runtime.h"
diff --git a/unix/modsocket.c b/unix/modsocket.c
index e52f5d92a997f4ccd61847fb90c54051de2973df..898d5bfe9f70a25420b8f23b65199d1a27d0a7ba 100644
--- a/unix/modsocket.c
+++ b/unix/modsocket.c
@@ -11,9 +11,9 @@
 #include <netdb.h>
 #include <errno.h>
 
+#include "mpconfig.h"
 #include "nlr.h"
 #include "misc.h"
-#include "mpconfig.h"
 #include "qstr.h"
 #include "obj.h"
 #include "objtuple.h"