diff --git a/mount/fuse.rs b/mount/fuse.rs
index 69cf53a1dca948b39dd59d616827438e07034510..f66b242d16a2f35602428b031c440a7adb012f4e 100644
--- a/mount/fuse.rs
+++ b/mount/fuse.rs
@@ -136,7 +136,7 @@ impl Filesystem for Fuse {
 
         if let Some(mtime) = mtime {
             match self.fs.node(block) {
-                Ok(mut node) => if mtime.sec as u64 > node.1.mtime || (mtime.sec as u64 == node.1.mtime && mtime.nsec as u32 > node.1.mtime_nsec) {
+                Ok(mut node) => {
                     node.1.mtime = mtime.sec as u64;
                     node.1.mtime_nsec = mtime.nsec as u32;
                     if let Err(err) = self.fs.write_at(node.0, &node.1) {
@@ -197,20 +197,32 @@ impl Filesystem for Fuse {
         let mut children = Vec::new();
         match self.fs.child_nodes(&mut children, parent_block) {
             Ok(()) => {
+                let mut i;
+                let skip;
                 if offset == 0 {
-                    let mut i = 0;
+                    skip = 0;
+                    i = 0;
                     reply.add(parent_block - self.fs.header.0, i, FileType::Directory, ".");
                     i += 1;
                     reply.add(parent_block - self.fs.header.0, i, FileType::Directory, "..");
                     i += 1;
-                    for child in children.iter() {
-                        reply.add(child.0 - self.fs.header.0, i, if child.1.is_dir() {
-                            FileType::Directory
-                        } else {
-                            FileType::RegularFile
-                        }, child.1.name().unwrap());
-                        i += 1;
+                } else {
+                    i = offset + 1;
+                    skip = offset as usize - 1;
+                }
+
+                for child in children.iter().skip(skip) {
+                    let full = reply.add(child.0 - self.fs.header.0, i, if child.1.is_dir() {
+                        FileType::Directory
+                    } else {
+                        FileType::RegularFile
+                    }, child.1.name().unwrap());
+
+                    if full {
+                        break;
                     }
+
+                    i += 1;
                 }
                 reply.ok();
             },