diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass
index 471c32b..1ea4bc5 100644
--- a/meta/classes/patch.bbclass
+++ b/meta/classes/patch.bbclass
@@ -155,7 +155,10 @@ python patch_do_patch() {
 			patchset.Import({"file":local, "strippath": parm['striplevel']}, True)
 		except Exception as exc:
 			bb.fatal(str(exc))
-		resolver.Resolve()
+		try:
+			resolver.Resolve()
+		except bb.BBHandledException as e:
+			bb.fatal(str(e))
 }
 patch_do_patch[vardepsexclude] = "PATCHRESOLVE"
 
diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
index f4ccb3e..6f7f900 100644
--- a/meta/lib/oe/patch.py
+++ b/meta/lib/oe/patch.py
@@ -2,14 +2,14 @@ import oe.path
 import os
 import bb.utils, bb.msg, bb.data, bb.fetch2
 
-class NotFoundError(Exception):
+class NotFoundError(bb.BBHandledException):
     def __init__(self, path):
         self.path = path
 
     def __str__(self):
         return "Error: %s not found." % self.path
 
-class CmdError(Exception):
+class CmdError(bb.BBHandledException):
     def __init__(self, exitstatus, output):
         self.status = exitstatus
         self.output = output
@@ -207,7 +207,7 @@ class QuiltTree(PatchSet):
         # read series -> self.patches
         seriespath = os.path.join(self.dir, 'patches', 'series')
         if not os.path.exists(self.dir):
-            raise Exception("Error: %s does not exist." % self.dir)
+            raise NotFoundError(self.dir)
         if os.path.exists(seriespath):
             series = file(seriespath, 'r')
             for line in series.readlines():
@@ -228,7 +228,7 @@ class QuiltTree(PatchSet):
                 if sys.exc_value.output.strip() == "No patches applied":
                     return
                 else:
-                    raise sys.exc_value
+                    raise
             output = [val for val in output.split('\n') if not val.startswith('#')]
             for patch in self.patches:
                 if os.path.basename(patch["quiltfile"]) == output[-1]:
@@ -336,7 +336,7 @@ class NOOPResolver(Resolver):
         except Exception:
             import sys
             os.chdir(olddir)
-            raise sys.exc_value
+            raise
 
 # Patch resolver which relies on the user doing all the work involved in the
 # resolution, with the exception of refreshing the remote copy of the patch
