diff --git a/afero_test.go b/afero_test.go
index 6c9c64b..26e23cd 100644
--- a/afero_test.go
+++ b/afero_test.go
@@ -194,20 +194,39 @@
 		tDir := testDir(fs)
 		from := filepath.Join(tDir, "/renamefrom")
 		to := filepath.Join(tDir, "/renameto")
+		exists := filepath.Join(tDir, "/renameexists")
 		file, err := fs.Create(from)
 		if err != nil {
-			t.Fatalf("open %q failed: %v", to, err)
+			t.Fatalf("%s: open %q failed: %v", fs.Name(), to, err)
 		}
 		if err = file.Close(); err != nil {
-			t.Errorf("close %q failed: %v", to, err)
+			t.Errorf("%s: close %q failed: %v", fs.Name(), to, err)
+		}
+		file, err = fs.Create(exists)
+		if err != nil {
+			t.Fatalf("%s: open %q failed: %v", fs.Name(), to, err)
+		}
+		if err = file.Close(); err != nil {
+			t.Errorf("%s: close %q failed: %v", fs.Name(), to, err)
 		}
 		err = fs.Rename(from, to)
 		if err != nil {
-			t.Fatalf("rename %q, %q failed: %v", to, from, err)
+			t.Fatalf("%s: rename %q, %q failed: %v", fs.Name(), to, from, err)
+		}
+		file, err = fs.Create(from)
+		if err != nil {
+			t.Fatalf("%s: open %q failed: %v", fs.Name(), to, err)
+		}
+		if err = file.Close(); err != nil {
+			t.Errorf("%s: close %q failed: %v", fs.Name(), to, err)
+		}
+		err = fs.Rename(from, exists)
+		if err != nil {
+			t.Errorf("%s: rename %q, %q failed: %v", fs.Name(), exists, from, err)
 		}
 		names, err := readDirNames(fs, tDir)
 		if err != nil {
-			t.Fatalf("readDirNames error: %v", err)
+			t.Errorf("%s: readDirNames error: %v", fs.Name(), err)
 		}
 		found := false
 		for _, e := range names {
@@ -224,7 +243,7 @@
 
 		_, err = fs.Stat(to)
 		if err != nil {
-			t.Errorf("stat %q failed: %v", to, err)
+			t.Errorf("%s: stat %q failed: %v", fs.Name(), to, err)
 		}
 	}
 }
diff --git a/memmap.go b/memmap.go
index 2f2c612..21fbe67 100644
--- a/memmap.go
+++ b/memmap.go
@@ -278,20 +278,16 @@
 	m.mu.RLock()
 	defer m.mu.RUnlock()
 	if _, ok := m.getData()[oldname]; ok {
-		if _, ok := m.getData()[newname]; !ok {
-			m.mu.RUnlock()
-			m.mu.Lock()
-			m.unRegisterWithParent(oldname)
-			fileData := m.getData()[oldname]
-			delete(m.getData(), oldname)
-			mem.ChangeFileName(fileData, newname)
-			m.getData()[newname] = fileData
-			m.registerWithParent(fileData)
-			m.mu.Unlock()
-			m.mu.RLock()
-		} else {
-			return &os.PathError{"rename", newname, ErrDestinationExists}
-		}
+		m.mu.RUnlock()
+		m.mu.Lock()
+		m.unRegisterWithParent(oldname)
+		fileData := m.getData()[oldname]
+		delete(m.getData(), oldname)
+		mem.ChangeFileName(fileData, newname)
+		m.getData()[newname] = fileData
+		m.registerWithParent(fileData)
+		m.mu.Unlock()
+		m.mu.RLock()
 	} else {
 		return &os.PathError{"rename", oldname, ErrFileNotFound}
 	}
