diff --git a/erpnext/accounts/doctype/account/account.json b/erpnext/accounts/doctype/account/account.json
index ec9f7ae..c32497f 100644
--- a/erpnext/accounts/doctype/account/account.json
+++ b/erpnext/accounts/doctype/account/account.json
@@ -10,7 +10,7 @@
   {
    "fieldname": "properties", 
    "fieldtype": "Section Break", 
-   "in_list_view": 1, 
+   "in_list_view": 0, 
    "label": "Account Details", 
    "oldfieldtype": "Section Break", 
    "permlevel": 0
@@ -18,7 +18,7 @@
   {
    "fieldname": "column_break0", 
    "fieldtype": "Column Break", 
-   "in_list_view": 1, 
+   "in_list_view": 0, 
    "permlevel": 0, 
    "width": "50%"
   }, 
@@ -37,18 +37,6 @@
    "search_index": 1
   }, 
   {
-   "fieldname": "level", 
-   "fieldtype": "Int", 
-   "hidden": 1, 
-   "in_list_view": 1, 
-   "label": "Level", 
-   "oldfieldname": "level", 
-   "oldfieldtype": "Int", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1
-  }, 
-  {
    "default": "Ledger", 
    "fieldname": "group_or_ledger", 
    "fieldtype": "Select", 
@@ -211,7 +199,7 @@
  "icon": "icon-money", 
  "idx": 1, 
  "in_create": 1, 
- "modified": "2014-04-28 16:52:32.059072", 
+ "modified": "2014-04-30 11:28:52.916199", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Account", 
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.json b/erpnext/accounts/doctype/journal_voucher/journal_voucher.json
index 872fffa..44d6971 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.json
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.json
@@ -1,7 +1,7 @@
 {
  "allow_import": 1, 
  "autoname": "naming_series:", 
- "creation": "2013-03-25 10:53:52.000000", 
+ "creation": "2013-03-25 10:53:52", 
  "docstatus": 0, 
  "doctype": "DocType", 
  "fields": [
@@ -34,6 +34,7 @@
    "reqd": 1
   }, 
   {
+   "default": "Journal Entry", 
    "fieldname": "voucher_type", 
    "fieldtype": "Select", 
    "in_filter": 1, 
@@ -41,10 +42,11 @@
    "label": "Voucher Type", 
    "oldfieldname": "voucher_type", 
    "oldfieldtype": "Select", 
-   "options": "\nJournal Entry\nBank Voucher\nCash Voucher\nCredit Card Voucher\nDebit Note\nCredit Note\nContra Voucher\nExcise Voucher\nWrite Off Voucher\nOpening Entry", 
+   "options": "Journal Entry\nBank Voucher\nCash Voucher\nCredit Card Voucher\nDebit Note\nCredit Note\nContra Voucher\nExcise Voucher\nWrite Off Voucher\nOpening Entry", 
    "permlevel": 0, 
    "print_hide": 0, 
    "read_only": 0, 
+   "reqd": 1, 
    "search_index": 1
   }, 
   {
@@ -438,7 +440,7 @@
  "icon": "icon-file-text", 
  "idx": 1, 
  "is_submittable": 1, 
- "modified": "2014-01-20 17:48:51.000000", 
+ "modified": "2014-04-29 14:55:19.872882", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Journal Voucher", 
diff --git a/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
index 79da744..fae4646 100644
--- a/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
+++ b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
@@ -1,36 +1,51 @@
 // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-cur_frm.add_fetch("account", "company", "company")
-
 cur_frm.cscript.onload_post_render = function(doc) {
 	$(cur_frm.get_field("reconcile").input).addClass("btn-info");
 }
 
-cur_frm.cscript.refresh = function(doc) {
-	cur_frm.set_intro("");
-	if(!doc.voucher_no) {
-		cur_frm.set_intro(__("Select the Invoice against which you want to allocate payments."));
-	} else {
-		cur_frm.set_intro(__("Set allocated amount against each Payment Entry and click 'Allocate'."));
-	}
-}
-
 cur_frm.fields_dict.voucher_no.get_query = function(doc) {
 	// TO-do: check for pos, it should not come
 	if (!doc.account) msgprint(__("Please select Account first"));
 	else {
 		return {
 			doctype: doc.voucher_type,
-			query: "erpnext.accounts.doctype.payment_to_invoice_matching_tool.payment_to_invoice_matching_tool.gl_entry_details",
+			query: "erpnext.accounts.doctype.payment_to_invoice_matching_tool.payment_to_invoice_matching_tool.get_voucher_nos",
 			filters: {
-				"dt": doc.voucher_type,
-				"acc": doc.account
+				"voucher_type": doc.voucher_type,
+				"account": doc.account
 			}
-		}		
+		}
 	}
 }
 
-cur_frm.cscript.voucher_no  = function(doc, cdt, cdn) {
-	return get_server_fields('get_voucher_details', '', '', doc, cdt, cdn, 1)
-}
\ No newline at end of file
+cur_frm.cscript.voucher_no  = function() {
+	return cur_frm.call({
+		doc: cur_frm.doc,
+		method: "get_voucher_details"
+	});
+}
+
+cur_frm.cscript.get_against_entries  = function() {
+	return cur_frm.call({
+		doc: cur_frm.doc,
+		method: "get_against_entries"
+	});
+}
+
+cur_frm.cscript.reconcile  = function() {
+	return cur_frm.call({
+		doc: cur_frm.doc,
+		method: "reconcile"
+	});
+}
+
+cur_frm.cscript.amt_to_be_reconciled = function(doc, cdt, cdn) {
+	var total_allocated_amount = 0
+	$.each(cur_frm.doc.against_entries, function(i, d) {
+		if(d.amt_to_be_reconciled > 0) total_allocated_amount += flt(d.amt_to_be_reconciled);
+		else if (d.amt_to_be_reconciled < 0) frappe.throw(__("Allocated amount can not be negative"));
+	})
+	cur_frm.set_value("total_allocated_amount", total_allocated_amount);
+}
diff --git a/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.json b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.json
index ce1a06b..8d12f08 100644
--- a/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.json
+++ b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.json
@@ -1,5 +1,5 @@
 {
- "creation": "2013-01-30 12:49:46.000000", 
+ "creation": "2013-01-30 12:49:46", 
  "docstatus": 0, 
  "doctype": "DocType", 
  "document_type": "Other", 
@@ -7,31 +7,17 @@
   {
    "fieldname": "account", 
    "fieldtype": "Link", 
+   "in_list_view": 0, 
    "label": "Account", 
    "options": "Account", 
    "permlevel": 0, 
    "reqd": 1
   }, 
   {
-   "fieldname": "account_type", 
-   "fieldtype": "Data", 
-   "hidden": 1, 
-   "label": "Account Type", 
-   "permlevel": 0, 
-   "read_only": 1
-  }, 
-  {
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "hidden": 1, 
-   "label": "Company", 
-   "options": "Company", 
-   "permlevel": 0, 
-   "print_hide": 1
-  }, 
-  {
+   "default": "Journal Voucher", 
    "fieldname": "voucher_type", 
    "fieldtype": "Select", 
+   "in_list_view": 0, 
    "label": "Voucher Type", 
    "options": "Sales Invoice\nPurchase Invoice\nJournal Voucher", 
    "permlevel": 0, 
@@ -40,21 +26,16 @@
   {
    "fieldname": "voucher_no", 
    "fieldtype": "Link", 
+   "in_list_view": 1, 
    "label": "Voucher No", 
    "options": "[Select]", 
    "permlevel": 0, 
    "reqd": 1
   }, 
   {
-   "fieldname": "pull_payment_entries", 
-   "fieldtype": "Button", 
-   "label": "Pull Payment Entries", 
-   "options": "get_payment_entries", 
-   "permlevel": 0
-  }, 
-  {
    "fieldname": "column_break1", 
    "fieldtype": "Column Break", 
+   "in_list_view": 0, 
    "permlevel": 0, 
    "print_width": "50%", 
    "width": "50%"
@@ -62,55 +43,27 @@
   {
    "fieldname": "total_amount", 
    "fieldtype": "Currency", 
+   "in_list_view": 1, 
    "label": "Total Amount", 
-   "options": "Company:company:default_currency", 
+   "options": "", 
    "permlevel": 0, 
    "read_only": 1
   }, 
   {
-   "fieldname": "pending_amt_to_reconcile", 
+   "fieldname": "unmatched_amount", 
    "fieldtype": "Currency", 
-   "label": "Outstanding Amount", 
-   "options": "Company:company:default_currency", 
+   "label": "Unmatched Amount", 
+   "options": "", 
    "permlevel": 0, 
    "read_only": 1
   }, 
   {
-   "fieldname": "payment_entries", 
+   "fieldname": "against_entries_section", 
    "fieldtype": "Section Break", 
-   "label": "Payment Entries", 
+   "label": "Against Entries", 
    "permlevel": 0
   }, 
   {
-   "description": "Update allocated amount in the above table and then click \"Allocate\" button", 
-   "fieldname": "ir_payment_details", 
-   "fieldtype": "Table", 
-   "label": "Payment Entries", 
-   "options": "Payment to Invoice Matching Tool Detail", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "reconcile", 
-   "fieldtype": "Button", 
-   "label": "Allocate", 
-   "options": "reconcile", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "section_break0", 
-   "fieldtype": "Section Break", 
-   "options": "Simple", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "column_break2", 
-   "fieldtype": "Column Break", 
-   "label": "Filter By Date", 
-   "permlevel": 0, 
-   "print_width": "50%", 
-   "width": "50%"
-  }, 
-  {
    "fieldname": "from_date", 
    "fieldtype": "Date", 
    "label": "From Date", 
@@ -123,38 +76,86 @@
    "permlevel": 0
   }, 
   {
-   "fieldname": "help_html", 
-   "fieldtype": "HTML", 
-   "label": "Help HTML", 
-   "options": "Click \"Pull Payment Entries\" to refresh the table with filters.", 
-   "permlevel": 0
-  }, 
-  {
    "fieldname": "column_break3", 
    "fieldtype": "Column Break", 
-   "label": "Filter By Amount", 
+   "label": "", 
    "permlevel": 0, 
    "print_width": "50%", 
    "width": "50%"
   }, 
   {
    "fieldname": "amt_greater_than", 
-   "fieldtype": "Data", 
+   "fieldtype": "Currency", 
    "label": "Amount >=", 
    "permlevel": 0
   }, 
   {
    "fieldname": "amt_less_than", 
-   "fieldtype": "Data", 
+   "fieldtype": "Currency", 
    "label": "Amount <=", 
    "permlevel": 0
+  }, 
+  {
+   "fieldname": "section_break0", 
+   "fieldtype": "Section Break", 
+   "options": "Simple", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "get_against_entries", 
+   "fieldtype": "Button", 
+   "label": "Get Against Entries", 
+   "options": "", 
+   "permlevel": 0
+  }, 
+  {
+   "description": "Update allocated amount in the above table and then click \"Allocate\" button", 
+   "fieldname": "against_entries", 
+   "fieldtype": "Table", 
+   "label": "Against Entries", 
+   "options": "Payment to Invoice Matching Tool Detail", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "sec_break1", 
+   "fieldtype": "Section Break", 
+   "options": "Simple", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "total_allocated_amount", 
+   "fieldtype": "Currency", 
+   "label": "Total Allocated Amount", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
+   "fieldname": "col_breal4", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0
+  }, 
+  {
+   "default": "", 
+   "fieldname": "allocate_amount_automatically", 
+   "fieldtype": "Button", 
+   "hidden": 1, 
+   "label": "Allocate Amount Automatically", 
+   "permlevel": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "reconcile", 
+   "fieldtype": "Button", 
+   "label": "Reconcile", 
+   "options": "", 
+   "permlevel": 0
   }
  ], 
- "hide_toolbar": 1, 
+ "hide_toolbar": 0, 
  "icon": "icon-magic", 
  "idx": 1, 
  "issingle": 1, 
- "modified": "2013-12-20 19:23:24.000000", 
+ "modified": "2014-04-30 17:11:05.908619", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Payment to Invoice Matching Tool", 
diff --git a/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
index f845138..6ec28d9 100644
--- a/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
+++ b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
@@ -17,69 +17,99 @@
 			where voucher_type = %s and voucher_no = %s
 			and account = %s""", (self.voucher_type, self.voucher_no, self.account))
 
-		total_amount = total_amount and flt(total_amount[0][0]) or 0
+		self.total_amount = total_amount and flt(total_amount[0][0]) or 0
+
 		reconciled_payment = frappe.db.sql("""
-			select abs(sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))) from `tabGL Entry` where
-			against_voucher = %s and voucher_no != %s
-			and account = %s""", (self.voucher_no, self.voucher_no, self.account))
+			select abs(sum(ifnull(debit, 0)) - sum(ifnull(credit, 0)))
+			from `tabGL Entry`
+			where against_voucher = %s and account = %s
+		""", (self.voucher_no, self.account))
 
 		reconciled_payment = reconciled_payment and flt(reconciled_payment[0][0]) or 0
-		ret = {
-			'total_amount': total_amount,
-			'pending_amt_to_reconcile': total_amount - reconciled_payment
-		}
+		self.unmatched_amount = self.total_amount - reconciled_payment
 
-		return ret
-
-	def get_payment_entries(self):
+	def get_against_entries(self):
 		"""
 			Get payment entries for the account and period
 			Payment entry will be decided based on account type (Dr/Cr)
 		"""
 
-		self.set('ir_payment_details', [])
+		self.set('against_entries', [])
 		gle = self.get_gl_entries()
-		self.create_payment_table(gle)
+		self.create_against_entries_table(gle)
 
 	def get_gl_entries(self):
 		self.validate_mandatory()
 
+		dr_or_cr = "credit" if self.total_amount > 0 else "debit"
+
 		cond = self.from_date and " and t1.posting_date >= '" + self.from_date + "'" or ""
-		cond += self.to_date and " and t1.posting_date <= '" + self.to_date + "'"or ""
+		cond += self.to_date and " and t1.posting_date <= '" + self.to_date + "'" or ""
 
 		if self.amt_greater_than:
-			cond += ' and abs(ifnull(t2.debit, 0) - ifnull(t2.credit, 0)) >= ' + \
-				self.amt_greater_than
+			cond += ' and abs(ifnull(t2.debit, 0) - ifnull(t2.credit, 0)) >= ' + self.amt_greater_than
 		if self.amt_less_than:
-			cond += ' and abs(ifnull(t2.debit, 0) - ifnull(t2.credit, 0)) >= ' + \
-				self.amt_less_than
+			cond += ' and abs(ifnull(t2.debit, 0) - ifnull(t2.credit, 0)) >= ' + self.amt_less_than
 
 		gle = frappe.db.sql("""
-			select t1.name as voucher_no, t1.posting_date, t1.total_debit as total_amt,
-			 	abs(sum(ifnull(t2.credit, 0)) - sum(ifnull(t2.debit, 0))) as amt_due, t1.remark,
-			 	t2.against_account, t2.name as voucher_detail_no
+			select
+				t1.name as voucher_no, t1.posting_date, t1.total_debit as total_amt,
+			 	abs(ifnull(t2.debit, 0) - ifnull(t2.credit, 0)) as unmatched_amount, t1.remark,
+			 	t2.against_account, t2.name as voucher_detail_no, t2.is_advance
 			from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
 			where t1.name = t2.parent and t1.docstatus = 1 and t2.account = %s
 			and ifnull(t2.against_voucher, '')='' and ifnull(t2.against_invoice, '')=''
-			and ifnull(t2.against_jv, '')='' and t1.name != %s %s group by t1.name, t2.name """ %
-			('%s', '%s', cond), (self.account, self.voucher_no), as_dict=1)
+			and ifnull(t2.against_jv, '')='' and t2.%s > 0 and t1.name != %s
+			and not exists (select * from `tabJournal Voucher Detail`
+				where parent=%s and against_jv = t1.name) %s
+			group by t1.name, t2.name """ %
+			('%s', dr_or_cr, '%s', '%s', cond), (self.account, self.voucher_no, self.voucher_no), as_dict=1)
 
 		return gle
 
-	def create_payment_table(self, gle):
+	def create_against_entries_table(self, gle):
+		adjusted_jv = {}
 		for d in gle:
-			ch = self.append('ir_payment_details', {})
-			ch.voucher_no = d.get('voucher_no')
-			ch.posting_date = d.get('posting_date')
-			ch.amt_due =  flt(d.get('amt_due'))
-			ch.total_amt = flt(d.get('total_amt'))
-			ch.against_account = d.get('against_account')
-			ch.remarks = d.get('remark')
-			ch.voucher_detail_no = d.get('voucher_detail_no')
+			if not adjusted_jv.has_key(d.get("voucher_no")):
+				matched_amount = frappe.db.sql("""
+					select
+						ifnull(abs(sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))), 0)
+					from
+						`tabGL Entry`
+					where
+						account = %s and against_voucher_type = "Journal Voucher"
+						and ifnull(against_voucher, '') = %s
+				""", (self.account, d.get('voucher_no')))
+				matched_amount = matched_amount[0][0] if matched_amount else 0
+			else:
+				matched_amount = adjusted_jv.get(d.get("voucher_no"))
+
+			if matched_amount < flt(d.get('unmatched_amount')):
+				unmatched_amount = flt(d.get('unmatched_amount')) - matched_amount
+				adjusted_jv.setdefault(d.get("voucher_no"), 0)
+			else:
+				unmatched_amount = 0
+				adjusted_jv.setdefault(d.get("voucher_no"), matched_amount - flt(d.get('unmatched_amount')))
+
+			if unmatched_amount:
+				ch = self.append('against_entries', {})
+				ch.voucher_no = d.get('voucher_no')
+				ch.posting_date = d.get('posting_date')
+				ch.unmatched_amount = unmatched_amount
+				ch.total_amt = flt(d.get('total_amt'))
+				ch.against_account = d.get('against_account')
+				ch.remarks = d.get('remark')
+				ch.voucher_detail_no = d.get('voucher_detail_no')
+				ch.is_advance = d.get("is_advance")
+				ch.original_amount = flt(d.get('unmatched_amount'))
 
 	def validate_mandatory(self):
-		if not self.account:
-			msgprint(_("Please select Account first"), raise_exception=1)
+		for fieldname in ["account", "voucher_type", "voucher_no"]:
+			if not self.get(fieldname):
+				frappe.throw(_("Please select {0} first").format(self.meta.get_label("fieldname")))
+
+		if not frappe.db.exists(self.voucher_type, self.voucher_no):
+			frappe.throw(_("Voucher No is not valid"))
 
 	def reconcile(self):
 		"""
@@ -88,23 +118,26 @@
 			2. split into multiple rows if partially adjusted, assign against voucher
 			3. submit payment voucher
 		"""
-		if not self.voucher_no or not frappe.db.sql("""select name from `tab%s`
-				where name = %s""" % (self.voucher_type, '%s'), self.voucher_no):
-			frappe.throw(_("Please select valid Voucher No to proceed"))
+		self.validate_mandatory()
+
+		if not self.total_allocated_amount:
+			frappe.throw(_("You must allocate amount before reconcile"))
+
+		dr_or_cr = "credit" if self.total_amount > 0 else "debit"
 
 		lst = []
-		for d in self.get('ir_payment_details'):
-			if flt(d.amt_to_be_reconciled) > 0:
+		for d in self.get('against_entries'):
+			if flt(d.allocated_amount) > 0:
 				args = {
 					'voucher_no' : d.voucher_no,
 					'voucher_detail_no' : d.voucher_detail_no,
 					'against_voucher_type' : self.voucher_type,
 					'against_voucher'  : self.voucher_no,
 					'account' : self.account,
-					'is_advance' : 'No',
-					# 'dr_or_cr' :  self.account_type=='debit' and 'credit' or 'debit',
-					'unadjusted_amt' : flt(d.amt_due),
-					'allocated_amt' : flt(d.amt_to_be_reconciled)
+					'is_advance' : d.is_advance,
+					'dr_or_cr' : dr_or_cr,
+					'unadjusted_amt' : flt(d.original_amount),
+					'allocated_amt' : flt(d.allocated_amount)
 				}
 
 				lst.append(args)
@@ -112,35 +145,34 @@
 		if lst:
 			from erpnext.accounts.utils import reconcile_against_document
 			reconcile_against_document(lst)
+			self.get_against_entries()
 			msgprint(_("Successfully allocated"))
-		else:
-			msgprint(_("No amount allocated"), raise_exception=1)
 
-def gl_entry_details(doctype, txt, searchfield, start, page_len, filters):
-	from erpnext.controllers.queries import get_match_cond
-	return frappe.db.sql("""select gle.voucher_no, gle.posting_date,
-		gle.debit, gle.credit from `tabGL Entry` gle
-	    where gle.account = '%(acc)s'
-	    	and gle.voucher_type = '%(dt)s'
-			and gle.voucher_no like '%(txt)s'
-	    	and (ifnull(gle.against_voucher, '') = ''
-	    		or ifnull(gle.against_voucher, '') = gle.voucher_no )
-	   		and (select ifnull(abs(sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))), 0)
-				from `tabGL Entry`
-	        	where account = '%(acc)s'
-				and against_voucher_type = '%(dt)s'
-	        	and against_voucher = gle.voucher_no
-	        	and voucher_no != gle.voucher_no)
-					!= abs(ifnull(gle.debit, 0) - ifnull(gle.credit, 0))
-			and if(gle.voucher_type='Sales Invoice', ifnull((select is_pos from `tabSales Invoice`
-				where name=gle.voucher_no), 0), 0)=0
-			%(mcond)s
-	    ORDER BY gle.posting_date desc, gle.voucher_no desc
-	    limit %(start)s, %(page_len)s""" % {
-			"dt":filters["dt"],
-			"acc":filters["acc"],
-			'mcond':get_match_cond(doctype),
-			'txt': "%%%s%%" % txt,
-			"start": start,
-			"page_len": page_len
-		})
+def get_voucher_nos(doctype, txt, searchfield, start, page_len, filters):
+	non_reconclied_entries = []
+	entries = frappe.db.sql("""
+		select
+			voucher_no, posting_date, ifnull(abs(sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))), 0) as amount
+		from
+			`tabGL Entry`
+		where
+			account = %s and voucher_type = %s and voucher_no like %s
+			and ifnull(against_voucher, '') = ''
+		group by voucher_no
+	""", (filters["account"], filters["voucher_type"], "%%%s%%" % txt), as_dict=True)
+
+	for d in entries:
+		adjusted_amount = frappe.db.sql("""
+			select
+				ifnull(abs(sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))), 0)
+			from
+				`tabGL Entry`
+			where
+				account = %s and against_voucher_type = %s and ifnull(against_voucher, '') = %s
+		""", (filters["account"], filters["voucher_type"], d.voucher_no))
+		adjusted_amount = adjusted_amount[0][0] if adjusted_amount else 0
+
+		if adjusted_amount != d.amount:
+			non_reconclied_entries.append([d.voucher_no, d.posting_date, d.amount])
+
+	return non_reconclied_entries
diff --git a/erpnext/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.json b/erpnext/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.json
index eecbb11..247f023 100644
--- a/erpnext/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.json
+++ b/erpnext/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.json
@@ -1,5 +1,5 @@
 {
- "creation": "2013-02-22 01:27:39.000000", 
+ "creation": "2013-02-22 01:27:39", 
  "docstatus": 0, 
  "doctype": "DocType", 
  "fields": [
@@ -16,7 +16,7 @@
    "width": "140px"
   }, 
   {
-   "fieldname": "amt_due", 
+   "fieldname": "unmatched_amount", 
    "fieldtype": "Currency", 
    "in_list_view": 1, 
    "label": "Unmatched Amount", 
@@ -25,7 +25,7 @@
    "read_only": 1
   }, 
   {
-   "fieldname": "amt_to_be_reconciled", 
+   "fieldname": "allocated_amount", 
    "fieldtype": "Currency", 
    "in_list_view": 1, 
    "label": "Allocated Amount", 
@@ -34,6 +34,11 @@
    "reqd": 1
   }, 
   {
+   "fieldname": "col_break1", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0
+  }, 
+  {
    "fieldname": "posting_date", 
    "fieldtype": "Date", 
    "in_list_view": 1, 
@@ -76,13 +81,30 @@
    "print_hide": 1, 
    "read_only": 1, 
    "reqd": 0
+  }, 
+  {
+   "fieldname": "is_advance", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "label": "Is Advance", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
+   "fieldname": "original_amount", 
+   "fieldtype": "Currency", 
+   "hidden": 1, 
+   "label": "Original Amount", 
+   "permlevel": 0
   }
  ], 
+ "hide_toolbar": 1, 
  "idx": 1, 
  "istable": 1, 
- "modified": "2013-12-20 19:23:24.000000", 
+ "modified": "2014-04-30 19:27:15.993641", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Payment to Invoice Matching Tool Detail", 
- "owner": "Administrator"
+ "owner": "Administrator", 
+ "permissions": []
 }
\ No newline at end of file
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index e215ae6..1a09d38 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -125,7 +125,7 @@
 	"""
 	for d in args:
 		check_if_jv_modified(d)
-
+		validate_allocated_amount(d)
 		against_fld = {
 			'Journal Voucher' : 'against_jv',
 			'Sales Invoice' : 'against_invoice',
@@ -159,11 +159,17 @@
 		and ifnull(t2.against_voucher, '')=''
 		and ifnull(t2.against_invoice, '')='' and ifnull(t2.against_jv, '')=''
 		and t1.name = '%(voucher_no)s' and t2.name = '%(voucher_detail_no)s'
-		and t1.docstatus=1 and t2.%(dr_or_cr)s = %(unadjusted_amt)s""" % args)
+		and t1.docstatus=1 """ % args)
 
 	if not ret:
 		throw(_("""Payment Entry has been modified after you pulled it. Please pull it again."""))
 
+def validate_allocated_amount(args):
+	if args.get("allocated_amt") < 0:
+		throw(_("Allocated amount can not be negative"))
+	elif args.get("allocated_amt") > args.get("unadjusted_amt"):
+		throw(_("Allocated amount can not greater than unadusted amount"))
+
 def update_against_doc(d, jv_obj):
 	"""
 		Updates against document, if partial amount splits into rows
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 7518c2a..54f9b63 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -35,3 +35,4 @@
 execute:frappe.delete_doc("DocType", "MIS Control")
 execute:frappe.delete_doc("Page", "Financial Statements")
 execute:frappe.delete_doc("DocType", "Stock Ledger")
+execute:frappe.db.sql("update `tabJournal Voucher` set voucher_type='Journal Entry' where ifnull(voucher_type, '')=''")
