diff --git a/py/builtinmath.c b/py/builtinmath.c
index cccda9d48696c1763243309d6755e763579632b3..35c1e45edc1910c5279fa5c7585c8018650c035c 100644
--- a/py/builtinmath.c
+++ b/py/builtinmath.c
@@ -23,6 +23,7 @@ STATIC const mp_obj_float_t mp_math_pi_obj = {{&mp_type_float}, M_PI};
 MATH_FUN_1(sqrt, sqrt)
 MATH_FUN_2(pow, pow)
 MATH_FUN_1(exp, exp)
+MATH_FUN_1(expm1, expm1)
 MATH_FUN_1(log, log)
 MATH_FUN_1(log2, log2)
 MATH_FUN_1(log10, log10)
@@ -46,6 +47,7 @@ STATIC const mp_map_elem_t mp_module_math_globals_table[] = {
     { MP_OBJ_NEW_QSTR(MP_QSTR_sqrt), (mp_obj_t)&mp_math_sqrt_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_pow), (mp_obj_t)&mp_math_pow_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_exp), (mp_obj_t)&mp_math_exp_obj },
+    { MP_OBJ_NEW_QSTR(MP_QSTR_expm1), (mp_obj_t)&mp_math_expm1_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_log), (mp_obj_t)&mp_math_log_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_log2), (mp_obj_t)&mp_math_log2_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_log10), (mp_obj_t)&mp_math_log10_obj },
diff --git a/py/qstrdefs.h b/py/qstrdefs.h
index 8025b9bccc2b5f2bed4af454a7d9c1fbe9b321eb..2678526cda2b3a4625aac1cdb4227e7fda570275 100644
--- a/py/qstrdefs.h
+++ b/py/qstrdefs.h
@@ -121,6 +121,7 @@ Q(pi)
 Q(sqrt)
 Q(pow)
 Q(exp)
+Q(expm1)
 Q(log)
 Q(log2)
 Q(log10)