diff --git a/mongo/database.go b/mongo/database.go
index c8f14e70b0f71b921ca88d36e712eec9fbf169bf..f96472321ed40b4670286b8275db438984bbf50a 100644
--- a/mongo/database.go
+++ b/mongo/database.go
@@ -78,11 +78,12 @@ func (s *Source) Open(connURL db.ConnectionURL) error {
 
 // Clone returns a cloned db.Database session.
 func (s *Source) Clone() (db.Database, error) {
+	newSession := s.session.Copy()
 	clone := &Source{
 		name:        s.name,
 		connURL:     s.connURL,
-		session:     s.session.Copy(),
-		database:    s.database,
+		session:     newSession,
+		database:    newSession.DB(s.database.Name),
 		version:     s.version,
 		collections: map[string]*Collection{},
 	}