diff --git a/mem/file.go b/mem/file.go
index 7d43a52..be3673e 100644
--- a/mem/file.go
+++ b/mem/file.go
@@ -99,6 +99,9 @@
 func (f *File) Close() error {
 	f.fileData.Lock()
 	f.closed = true
+	if !f.readOnly {
+		SetModTime(f.fileData, time.Now())
+	}
 	f.fileData.Unlock()
 	return nil
 }
@@ -180,6 +183,9 @@
 	if f.closed == true {
 		return ErrFileClosed
 	}
+	if f.readOnly {
+		return &os.PathError{"truncate", f.fileData.name, errors.New("file handle is read only")}
+	}
 	if size < 0 {
 		return ErrOutOfRange
 	}
@@ -189,6 +195,7 @@
 	} else {
 		f.fileData.data = f.fileData.data[0:size]
 	}
+	SetModTime(f.fileData, time.Now())
 	return nil
 }
 
@@ -227,6 +234,7 @@
 		f.fileData.data = append(f.fileData.data[:cur], b...)
 		f.fileData.data = append(f.fileData.data, tail...)
 	}
+	SetModTime(f.fileData, time.Now())
 
 	atomic.StoreInt64(&f.at, int64(len(f.fileData.data)))
 	return
diff --git a/memmap_test.go b/memmap_test.go
index c0e6825..f090df7 100644
--- a/memmap_test.go
+++ b/memmap_test.go
@@ -208,3 +208,45 @@
 		f.Close()
 	}
 }
+
+func TestWriteCloseTime(t *testing.T) {
+	defer removeAllTestFiles(t)
+	const fileName = "afero-demo.txt"
+
+	for _, fs := range Fss {
+		dir := testDir(fs)
+		path := filepath.Join(dir, fileName)
+
+		f, err := fs.Create(path)
+		if err != nil {
+			t.Error(fs.Name()+":", "fs.Create failed: "+err.Error())
+		}
+		f.Close()
+
+		f, err = fs.Create(path)
+		if err != nil {
+			t.Error(fs.Name()+":", "fs.Create failed: "+err.Error())
+		}
+		fi, err := f.Stat()
+		if err != nil {
+			t.Error(fs.Name()+":", "Stat failed: "+err.Error())
+		}
+		timeBefore := fi.ModTime()
+		// sorry for the delay, but we have to make sure time advances, also
+		// on non Un*x systems...
+		time.Sleep(2 * time.Second)
+
+		_, err = f.Write([]byte("test"))
+		if err != nil {
+			t.Error(fs.Name()+":", "Write failed: "+err.Error())
+		}
+		f.Close()
+		fi, err = fs.Stat(path)
+		if err != nil {
+			t.Error(fs.Name()+":", "fs.Stat failed: "+err.Error())
+		}
+		if fi.ModTime().Equal(timeBefore) {
+			t.Error(fs.Name()+":", "ModTime was not set on Close()")
+		}
+	}
+}
