diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index ddf6460..52fa978 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -765,6 +765,7 @@
 			self.get_debited_credited_accounts()
 			if len(self.accounts_credited) > 1 and len(self.accounts_debited) > 1:
 				self.auto_set_against_accounts()
+				self.separate_against_account_entries = 0
 				return
 			self.get_against_accounts()
 
@@ -1035,7 +1036,7 @@
 		transaction_currency_map = self.get_transaction_currency_map()
 		company_currency = erpnext.get_company_currency(self.company)
 
-		self.get_against_accounts()
+		self.set_against_account()
 		for d in self.get("accounts"):
 			if d.debit or d.credit or (self.voucher_type == "Exchange Gain Or Loss"):
 				r = [d.user_remark, self.remark]
diff --git a/erpnext/accounts/doctype/journal_entry/test_journal_entry.py b/erpnext/accounts/doctype/journal_entry/test_journal_entry.py
index a6e920b..d9c1046 100644
--- a/erpnext/accounts/doctype/journal_entry/test_journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/test_journal_entry.py
@@ -426,17 +426,86 @@
 		account_balance = get_balance_on(account="_Test Bank - _TC", cost_center=cost_center)
 		self.assertEqual(expected_account_balance, account_balance)
 
+	def test_auto_set_against_accounts_for_jv(self):
+		from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import check_gl_entries
+
+		# Check entries when against accounts are auto-set
+		account_list = [
+			{
+				"account": "_Test Receivable - _TC",
+				"debit_in_account_currency": 1000,
+				"party_type": "Customer",
+				"party": "_Test Customer",
+			},
+			{
+				"account": "_Test Bank - _TC",
+				"credit_in_account_currency": 1000,
+			},
+			{
+				"account": "Debtors - _TC",
+				"credit_in_account_currency": 2000,
+				"party_type": "Customer",
+				"party": "_Test Customer",
+			},
+			{
+				"account": "Sales - _TC",
+				"debit_in_account_currency": 2000,
+			},
+		]
+		jv = make_journal_entry(account_list=account_list, submit=True)
+		expected_gle = [
+			["_Test Bank - _TC", 0.0, 1000.0, nowdate(), "_Test Customer"],
+			["_Test Receivable - _TC", 1000.0, 0.0, nowdate(), "_Test Bank - _TC"],
+			["Debtors - _TC", 0.0, 2000.0, nowdate(), "Sales - _TC"],
+			["Sales - _TC", 2000.0, 0.0, nowdate(), "_Test Customer"],
+		]
+		check_gl_entries(
+			doc=self,
+			voucher_type="Journal Entry",
+			voucher_no=jv.name,
+			posting_date=nowdate(),
+			expected_gle=expected_gle,
+			additional_columns=["against_link"],
+		)
+
+		# Check entries when against accounts are explicitly set
+		account_list[0]["debit_in_account_currency"] = 5000
+		account_list[1]["credit_in_account_currency"] = 7000
+		account_list[2]["credit_in_account_currency"] = 3000
+		account_list[3]["debit_in_account_currency"] = 5000
+
+		# Only set against for Sales Account
+		account_list[3]["against_type"] = "Customer"
+		account_list[3]["against_account_link"] = "_Test Customer"
+
+		jv = make_journal_entry(account_list=account_list, submit=True)
+		expected_gle = [
+			["_Test Bank - _TC", 0.0, 7000.0, nowdate(), None],
+			["_Test Receivable - _TC", 5000.0, 0.0, nowdate(), None],
+			["Debtors - _TC", 0.0, 3000.0, nowdate(), None],
+			["Sales - _TC", 5000.0, 0.0, nowdate(), "_Test Customer"],
+		]
+		check_gl_entries(
+			doc=self,
+			voucher_type="Journal Entry",
+			voucher_no=jv.name,
+			posting_date=nowdate(),
+			expected_gle=expected_gle,
+			additional_columns=["against_link"],
+		)
+
 
 def make_journal_entry(
-	account1,
-	account2,
-	amount,
+	account1=None,
+	account2=None,
+	amount=None,
 	cost_center=None,
 	posting_date=None,
 	exchange_rate=1,
 	save=True,
 	submit=False,
 	project=None,
+	account_list=None,
 ):
 	if not cost_center:
 		cost_center = "_Test Cost Center - _TC"
@@ -448,7 +517,8 @@
 	jv.multi_currency = 1
 	jv.set(
 		"accounts",
-		[
+		account_list
+		or [
 			{
 				"account": account1,
 				"cost_center": cost_center,
