add a test that fails if MemMapFs has the same `at` counter for multiple file objects
diff --git a/memmap_test.go b/memmap_test.go
index ce9a4e5..b739927 100644
--- a/memmap_test.go
+++ b/memmap_test.go
@@ -100,3 +100,53 @@
 		t.Error(op+":", err, "contains another os.PathError")
 	}
 }
+
+// Fails if multiple file objects use the same file.at counter in MemMapFs
+func TestMultipleOpenFiles(t *testing.T) {
+	defer removeAllTestFiles(t)
+	const fileName = "./afero-demo2.txt"
+
+	var fss = []Fs{&OsFs{}, &MemMapFs{}}
+	var data = make([][]byte, len(fss))
+
+	for i, fs := range fss {
+		dir := testDir(fs)
+		path := filepath.Join(dir, fileName)
+		fh1, err := fs.Create(path)
+		if err != nil {
+			t.Error("os.Create failed: " + err.Error())
+		}
+		_, err = fh1.Write([]byte("test"))
+		if err != nil {
+			t.Error("fh.Write failed: " + err.Error())
+		}
+		fh1.Seek(0, os.SEEK_SET)
+
+		fh2, err := fs.OpenFile(path, os.O_RDWR, 0777)
+		if err != nil {
+			t.Error("fs.OpenFile failed: " + err.Error())
+		}
+		fh2.Seek(0, os.SEEK_END)
+		fh2.Write([]byte("data"))
+		fh2.Close()
+
+		fh1.Write([]byte("data"))
+		fh1.Close()
+		// the file now should contain "datadata"
+		data[i], err = ReadFile(fs, path)
+		if err != nil {
+			t.Error(err)
+		}
+	}
+
+	for i, fs := range fss {
+		if i == 0 {
+			continue
+		}
+		if string(data[0]) != string(data[i]) {
+			t.Errorf("OsFs and %s don't behave the same\n"+
+				"OsFs: \"%s\"\n%s: \"%s\"\n",
+				fs.Name(), data[0], fs.Name(), data[i])
+		}
+	}
+}