diff --git a/deepclean/__main__.py b/deepclean/__main__.py
index 1e371666020e624329f5fd7f52ef63395c6b0d24..ddaf37b265e36880b96cb6e3d7e49080c4a051b7 100644
--- a/deepclean/__main__.py
+++ b/deepclean/__main__.py
@@ -74,9 +74,9 @@ def normalize_names(images_by_name):
     return copy_of_images
 
 
-def deepclean(
+def deepclean(  # noqa: MC0001
     includes=None, excludes=None, verbose=False, dry_run=False
-):  # noqa: MC0001
+):
     """Clean old versions of Docker images."""
     client = docker.from_env()
     images = {i.id: i for i in client.images.list()}
@@ -125,7 +125,13 @@ def deepclean(
             print(f"Would have removed image {Id}.")
         else:
             print(f"Removing image {Id}.")
-            client.images.remove(Id)
+            try:
+                client.images.remove(Id)
+            except docker.errors.APIError as exc:
+                if exc.status_code == 409:
+                    print(f"Image {Id} has descendant images.")
+                else:
+                    raise exc
 
 
 def main():