diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py
index 503aa93..eb8d5e9 100644
--- a/erpnext/controllers/status_updater.py
+++ b/erpnext/controllers/status_updater.py
@@ -177,6 +177,7 @@
 			else:
 				args['cond'] = ' and parent!="%s"' % self.name.replace('"', '\"')
 
+			args['set_modified'] = ''
 			if change_modified:
 				args['set_modified'] = ', modified = now(), modified_by = "{0}"'\
 					.format(frappe.db.escape(frappe.session.user))
@@ -210,7 +211,7 @@
 				if not args.get("extra_cond"): args["extra_cond"] = ""
 
 				frappe.db.sql("""update `tab%(target_dt)s`
-					set %(target_field)s = (select sum(%(source_field)s)
+					set %(target_field)s = (select ifnull(sum(%(source_field)s), 0)
 						from `tab%(source_dt)s` where `%(join_field)s`="%(detail_id)s"
 						and (docstatus=1 %(cond)s) %(extra_cond)s) %(second_source_condition)s
 					where name='%(detail_id)s'""" % args)
@@ -228,10 +229,12 @@
 			# update percent complete in the parent table
 			if args.get('target_parent_field'):
 				frappe.db.sql("""update `tab%(target_parent_dt)s`
-					set %(target_parent_field)s = round((select sum(if(%(target_ref_field)s >
-						%(target_field)s, %(target_field)s,
-						%(target_ref_field)s))/sum(%(target_ref_field)s)*100
-						from `tab%(target_dt)s` where parent="%(name)s"), 2) %(set_modified)s
+					set %(target_parent_field)s = round(
+						ifnull((select
+							ifnull(sum(if(%(target_ref_field)s > %(target_field)s, %(target_field)s, %(target_ref_field)s)), 0)
+							/ sum(%(target_ref_field)s) * 100
+						from `tab%(target_dt)s` where parent="%(name)s"), 0), 2)
+						%(set_modified)s
 					where name='%(name)s'""" % args)
 
 			# update field
@@ -264,10 +267,10 @@
 
 	def update_billing_status(self, zero_amount_refdoc, ref_dt, ref_fieldname):
 		for ref_dn in zero_amount_refdoc:
-			ref_doc_qty = flt(frappe.db.sql("""select sum(qty) from `tab%s Item`
+			ref_doc_qty = flt(frappe.db.sql("""select ifnull(sum(qty), 0) from `tab%s Item`
 				where parent=%s""" % (ref_dt, '%s'), (ref_dn))[0][0])
 
-			billed_qty = flt(frappe.db.sql("""select sum(qty)
+			billed_qty = flt(frappe.db.sql("""select ifnull(sum(qty), 0)
 				from `tab%s Item` where %s=%s and docstatus=1""" %
 				(self.doctype, ref_fieldname, '%s'), (ref_dn))[0][0])
 
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index fc02f7a..37f8f36 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -234,3 +234,4 @@
 execute:frappe.delete_doc_if_exists("DocType", "Stock UOM Replace Utility")
 erpnext.patches.v6_8.make_webform_standard #2015-11-23
 erpnext.patches.v6_8.move_drop_ship_to_po_items
+erpnext.patches.v6_10.fix_ordered_received_billed
diff --git a/erpnext/patches/v6_10/__init__.py b/erpnext/patches/v6_10/__init__.py
new file mode 100644
index 0000000..baffc48
--- /dev/null
+++ b/erpnext/patches/v6_10/__init__.py
@@ -0,0 +1 @@
+from __future__ import unicode_literals
diff --git a/erpnext/patches/v6_10/fix_ordered_received_billed.py b/erpnext/patches/v6_10/fix_ordered_received_billed.py
new file mode 100644
index 0000000..ed4112e
--- /dev/null
+++ b/erpnext/patches/v6_10/fix_ordered_received_billed.py
@@ -0,0 +1,17 @@
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	not_null_patch_date = frappe.db.sql("""select date(creation) from `tabPatch Log` where patch='frappe.patches.v6_9.int_float_not_null'""")
+	if not not_null_patch_date:
+		return
+
+	not_null_patch_date = not_null_patch_date[0][0]
+
+	for doctype in ("Purchase Invoice", "Sales Invoice", "Purchase Order", "Delivery Note", "Installation Note", "Delivery Note", "Purchase Receipt"):
+		for name in frappe.db.sql_list("""select name from `tab{doctype}`
+			where docstatus > 0 and (date(creation) >= %(patch_date)s or date(modified) >= %(patch_date)s)""".format(doctype=doctype),
+			{"patch_date": not_null_patch_date}):
+
+			doc = frappe.get_doc(doctype, name)
+			doc.update_qty(change_modified=False)
