diff --git a/erpnext/accounts/__init__.py b/erpnext/accounts/__init__.py
index e69de29..0f98d2b 100644
--- a/erpnext/accounts/__init__.py
+++ b/erpnext/accounts/__init__.py
@@ -0,0 +1,13 @@
+import webnotes
+
+def get_default_bank_account():
+	"""
+		Get default bank account for a company
+	"""
+	company = webnotes.form_dict.get('company')
+	if not company: return
+	res = webnotes.conn.sql("""\
+		SELECT default_bank_account FROM `tabCompany`
+		WHERE name=%s AND docstatus<2""", company)
+	
+	if res: return res[0][0]
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.js b/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
index f65ee31..99fb10a 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
@@ -152,3 +152,19 @@
   }
   loadreport('GL Entry','General Ledger', callback);
 }
+
+
+cur_frm.cscript.voucher_type = function(doc, cdt, cdn) {
+	if(doc.voucher_type == 'Bank Voucher' && cstr(doc.company)) {
+		var children = getchildren('Journal Voucher Detail', doc.name, 'entries');
+		if(!children || children.length==0) {
+			$c('accounts.get_default_bank_account', {company: doc.company }, function(r, rt) {
+				if(!r.exc) {
+					var jvd = LocalDB.add_child(doc, 'Journal Voucher Detail', 'entries');
+					jvd.account = cstr(r.message);
+					refresh_field('entries');
+				}
+			});
+		}
+	}
+}
diff --git a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js
index ce26865..b3cbd63 100644
--- a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js
+++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js
@@ -200,8 +200,12 @@
 
 // Make Journal Voucher
 // --------------------
-cur_frm.cscript['Make Bank Voucher'] = function(doc, dt, dn) {
-  cur_frm.cscript.make_jv(cur_frm.doc);
+cur_frm.cscript['Make Bank Voucher'] = function() {
+  $c('accounts.get_default_bank_account', { company: cur_frm.doc.company }, function(r, rt) {
+    if(!r.exc) {
+      cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message);
+	}
+  });
 }
 
 
@@ -324,7 +328,7 @@
 
 // Make JV
 // --------
-cur_frm.cscript.make_jv = function(doc, dt, dn, det) {
+cur_frm.cscript.make_jv = function(doc, dt, dn, bank_account) {
   var jv = LocalDB.create('Journal Voucher');
   jv = locals['Journal Voucher'][jv];
   jv.voucher_type = 'Bank Voucher';
@@ -342,6 +346,7 @@
   
   // credit to bank
   var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
+  d1.account = bank_account;
   d1.credit = doc.outstanding_amount;
   
   loaddoc('Journal Voucher', jv.name);
diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js
index ed47257..e56b16c 100644
--- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js
+++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js
@@ -277,7 +277,11 @@
 // Make Bank Voucher Button
 // -------------------------
 cur_frm.cscript['Make Bank Voucher'] = function(doc, dt, dn) {
-	cur_frm.cscript.make_jv(cur_frm.doc);
+	$c('accounts.get_default_bank_account', { company: cur_frm.doc.company }, function(r, rt) {
+		if(!r.exc) {
+		  cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message);
+		}
+	});
 }
 
 
@@ -402,7 +406,7 @@
 
 // Make Journal Voucher
 // --------------------
-cur_frm.cscript.make_jv = function(doc, dt, dn) {
+cur_frm.cscript.make_jv = function(doc, dt, dn, bank_account) {
 	var jv = LocalDB.create('Journal Voucher');
 	jv = locals['Journal Voucher'][jv];
 	jv.voucher_type = 'Bank Voucher';
@@ -420,6 +424,7 @@
 
 	// credit to bank
 	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
+	d1.account = bank_account;
 	d1.debit = doc.outstanding_amount;
 
 	loaddoc('Journal Voucher', jv.name);
