diff --git a/patches/october_2013/p07_rename_for_territory.py b/patches/october_2013/p07_rename_for_territory.py
index 2317002..c4b6745 100644
--- a/patches/october_2013/p07_rename_for_territory.py
+++ b/patches/october_2013/p07_rename_for_territory.py
@@ -14,8 +14,9 @@
 	
 	webnotes.reload_doc("setup", "doctype", "applicable_territory")
 	
-	if os.path.exists("app/setup/doctype/for_territory"):
-		os.system("rm -rf app/setup/doctype/for_territory")
+	path = os.path.join(get_base_path(), "app", "setup", "doctype", "for_territory")
+	if os.path.exists(path):
+		os.system("rm -rf {path}".format(path=path))
 	
 	if webnotes.conn.exists("DocType", "For Territory"):
 			webnotes.delete_doc("DocType", "For Territory")
\ No newline at end of file
diff --git a/patches/october_2013/p08_cleanup_after_item_price_module_change.py b/patches/october_2013/p08_cleanup_after_item_price_module_change.py
new file mode 100644
index 0000000..4169d96
--- /dev/null
+++ b/patches/october_2013/p08_cleanup_after_item_price_module_change.py
@@ -0,0 +1,13 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes, os
+
+def execute():
+	from webnotes.utils import get_base_path
+	
+	for dt in ("item_price", "price_list"):
+		path = os.path.join(get_base_path(), "app", "setup", "doctype", dt)
+		if os.path.exists(path):
+			os.system("rm -rf {path}".format(path=path))
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 67affb6..0cc393e 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -229,4 +229,5 @@
 	"patches.october_2013.p06_update_control_panel_and_global_defaults",
 	"patches.october_2013.p07_rename_for_territory",
 	"patches.june_2013.p07_taxes_price_list_for_territory",
+	"patches.october_2013.p08_cleanup_after_item_price_module_change",
 ]
\ No newline at end of file
diff --git a/stock/doctype/item_price/item_price.py b/stock/doctype/item_price/item_price.py
index be235de..b398326 100644
--- a/stock/doctype/item_price/item_price.py
+++ b/stock/doctype/item_price/item_price.py
@@ -7,7 +7,7 @@
 import webnotes
 from webnotes import _
 
-class ItemPriceDuplicateItem(Exception): pass
+class ItemPriceDuplicateItem(webnotes.ValidationError): pass
 
 class DocType:
 	def __init__(self, d, dl):
@@ -30,6 +30,10 @@
 		if webnotes.conn.sql("""select name from `tabItem Price` 
 			where item_code=%s and price_list=%s and name!=%s""", 
 			(self.doc.item_code, self.doc.price_list, self.doc.name)):
-				webnotes.throw(_("Duplicate Item: ") + self.doc.item_code + 
-						_(" already available in Price List: ") + self.doc.price_list, 
-						ItemPriceDuplicateItem)
\ No newline at end of file
+				webnotes.throw("{duplicate_item}: {item_code}, {already}: {price_list}".format(**{
+					"duplicate_item": _("Duplicate Item"),
+					"item_code": self.doc.item_code,
+					"already": _("already available in Price List"),
+					"price_list": self.doc.price_list
+				}), ItemPriceDuplicateItem)
+				
\ No newline at end of file
diff --git a/stock/doctype/item_price/test_item_price.py b/stock/doctype/item_price/test_item_price.py
index 43694da..73b8a8c 100644
--- a/stock/doctype/item_price/test_item_price.py
+++ b/stock/doctype/item_price/test_item_price.py
@@ -4,12 +4,12 @@
 from __future__ import unicode_literals
 import unittest
 import webnotes
-from setup.doctype.item_price.item_price import ItemPriceDuplicateItem
 
 class TestItem(unittest.TestCase):
 	def test_duplicate_item(self):
-		item_price = webnotes.bean(copy=test_records[0])
-		self.assertRaises(ItemPriceDuplicateItem, item_price.insert)
+		from stock.doctype.item_price.item_price import ItemPriceDuplicateItem
+		bean = webnotes.bean(copy=test_records[0])
+		self.assertRaises(ItemPriceDuplicateItem, bean.insert)
 
 test_records = [
 	[
