diff --git a/lib/micropython/meson.build b/lib/micropython/meson.build
index 5922396ac046604e5d8cad3b1c261cd4c0ec9755..1bb6488dd898da0bf522d500af34318a067e0911 100644
--- a/lib/micropython/meson.build
+++ b/lib/micropython/meson.build
@@ -177,5 +177,20 @@ micropython_additional_sources = files(
   'micropython/lib/utils/stdout_helpers.c',
   'micropython/lib/utils/pyexec.c',
   'micropython/lib/mp-readline/readline.c',
+)
+
+micropython_extmod_sources = files(
   'micropython/extmod/utime_mphal.c',
+  'micropython/extmod/modbtree.c',
+  'micropython/extmod/modframebuf.c',
+  'micropython/extmod/modubinascii.c',
+  'micropython/extmod/moducryptolib.c',
+  'micropython/extmod/moductypes.c',
+  'micropython/extmod/moduhashlib.c',
+  'micropython/extmod/moduheapq.c',
+  'micropython/extmod/modujson.c',
+  'micropython/extmod/modurandom.c',
+  'micropython/extmod/modure.c',
+  'micropython/extmod/moduselect.c',
+  'micropython/extmod/modutimeq.c',
 )
diff --git a/pycardium/meson.build b/pycardium/meson.build
index 608d9cce269614ebf9d6d5c65bdb7bb7110a53ce..67698112ed8be52f569fec2d4d087371bbe5cb91 100644
--- a/pycardium/meson.build
+++ b/pycardium/meson.build
@@ -30,6 +30,7 @@ qstr_h = custom_target(
     'modules/qstrdefs.h',
     'mpconfigport.h',
     micropython_sources,
+    micropython_extmod_sources,
   ],
   depends: [version_h],
   command: [micropython_gen_qstr, meson.current_source_dir(), '@OUTPUT@', '@INPUT@'],
@@ -59,6 +60,7 @@ upy = static_library(
   'micropython',
   micropython_sources,
   micropython_additional_sources,
+  micropython_extmod_sources,
   mp_headers,
   include_directories: micropython_includes,
 )