diff --git a/designateclient/cli/base.py b/designateclient/cli/base.py
index 87582029..16673f17 100644
--- a/designateclient/cli/base.py
+++ b/designateclient/cli/base.py
@@ -122,5 +122,6 @@ class UpdateCommand(Command, ShowOne):
         return results.keys(), results.values()
 
 
-class DeleteCommand(Command):
-    pass
+class DeleteCommand(Command, ShowOne):
+    def post_execute(self, results):
+        return [], []
diff --git a/designateclient/v1/__init__.py b/designateclient/v1/__init__.py
index e3604cee..e388730f 100644
--- a/designateclient/v1/__init__.py
+++ b/designateclient/v1/__init__.py
@@ -88,16 +88,22 @@ class Client(object):
         # Trigger the request
         response = func(*args, **kw)
 
+        # Decode is response, if possible
+        try:
+            response_payload = response.json()
+        except ValueError:
+            response_payload = {}
+
         if response.status_code == 400:
-            raise exceptions.BadRequest(**response.json())
+            raise exceptions.BadRequest(**response_payload)
         elif response.status_code in (401, 403):
-            raise exceptions.Forbidden(**response.json())
+            raise exceptions.Forbidden(**response_payload)
         elif response.status_code == 404:
-            raise exceptions.NotFound(**response.json())
+            raise exceptions.NotFound(**response_payload)
         elif response.status_code == 409:
-            raise exceptions.Conflict(**response.json())
-        elif response.status_code == 500:
-            raise exceptions.Unknown(**response.json())
+            raise exceptions.Conflict(**response_payload)
+        elif response.status_code >= 500:
+            raise exceptions.Unknown(**response_payload)
         else:
             return response