diff --git a/esp8266/moduos.c b/esp8266/moduos.c
index bc2838d2d4105bd55809b179c941cf667b7a8f08..deac0c960b2cb02841326e0671697c6f759786ae 100644
--- a/esp8266/moduos.c
+++ b/esp8266/moduos.c
@@ -97,6 +97,15 @@ STATIC mp_obj_t os_remove(mp_obj_t path_in) {
     return vfs_proxy_call(MP_QSTR_remove, 1, &path_in);
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_remove_obj, os_remove);
+
+STATIC mp_obj_t os_rename(mp_obj_t path_old, mp_obj_t path_new) {
+    mp_obj_t args[2];
+    args[0] = path_old;
+    args[1] = path_new;
+    return vfs_proxy_call(MP_QSTR_rename, 2, args);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(os_rename_obj, os_rename);
+
 #endif
 
 STATIC mp_obj_t os_urandom(mp_obj_t num) {
@@ -130,6 +139,7 @@ STATIC const mp_rom_map_elem_t os_module_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR_listdir), MP_ROM_PTR(&os_listdir_obj) },
     { MP_ROM_QSTR(MP_QSTR_mkdir), MP_ROM_PTR(&os_mkdir_obj) },
     { MP_ROM_QSTR(MP_QSTR_remove), MP_ROM_PTR(&os_remove_obj) },
+    { MP_ROM_QSTR(MP_QSTR_rename), MP_ROM_PTR(&os_rename_obj) },
     #endif
 };