diff --git a/kernel/syscall/process.rs b/kernel/syscall/process.rs
index 0aaaaf2e22f84bfffc321af0803e6afaf4102226..3a6f660afa1c68ff9b0c9cd7b3d4f6c462fe488e 100644
--- a/kernel/syscall/process.rs
+++ b/kernel/syscall/process.rs
@@ -684,7 +684,7 @@ pub fn exec(path: &[u8], arg_ptrs: &[[usize; 2]]) -> Result<usize> {
                         // Close
                         {
                             if let Some(event_id) = file.event {
-                                context::event::unregister(fd, file.scheme, event_id);
+                                context::event::unregister(FileHandle::from(fd), file.scheme, event_id);
                             }
 
                             let scheme_option = {
@@ -1118,4 +1118,3 @@ pub fn waitpid(pid: ContextId, status_ptr: usize, flags: usize) -> Result<Contex
         }
     }
 }
-