diff --git a/libraries/libmdb/mdb.c b/libraries/libmdb/mdb.c
index 32f50fec1e7ce6225f86c737200cba86ea05d09e..f3adb66fb056ce6d9b1a6fce9a5d51f4712d3092 100644
--- a/libraries/libmdb/mdb.c
+++ b/libraries/libmdb/mdb.c
@@ -5910,8 +5910,7 @@ int mdb_drop(MDB_txn *txn, MDB_dbi dbi, int del)
 
 	rc = mdb_drop0(mc, mc->mc_db->md_flags & MDB_DUPSORT);
 	if (rc)
-		mdb_cursor_close(mc);
-		return rc;
+		goto leave;
 
 	/* Can't delete the main DB */
 	if (del && dbi > MAIN_DBI) {
@@ -5927,6 +5926,7 @@ int mdb_drop(MDB_txn *txn, MDB_dbi dbi, int del)
 		txn->mt_dbs[dbi].md_entries = 0;
 		txn->mt_dbs[dbi].md_root = P_INVALID;
 	}
+leave:
 	mdb_cursor_close(mc);
 	return rc;
 }