diff --git a/deploy.manager.inc b/deploy.manager.inc
index 5f39f35..406dfbf 100644
--- a/deploy.manager.inc
+++ b/deploy.manager.inc
@@ -134,6 +134,11 @@ function deploy_manager_delete_from_plan($plan_name, $entity_type, $entity) {
 function deploy_manager_postprocess_operation($plan_name, $entity) {
   $plan = deploy_plan_load($plan_name);
   if (!empty($plan->aggregator_config['delete_post_deploy'])) {
+    list($entity_id, $revision_id) = entity_extract_ids($entity->__metadata['type'], $entity);
+    if (isset($_SESSION['deploy'][$plan_name][$entity->__metadata['type']][$entity_id]) && $_SESSION['deploy'][$plan_name][$entity->__metadata['type']][$entity_id] == FALSE) {
+      unset($_SESSION['deploy'][$plan_name][$entity->__metadata['type']][$entity_id]);
+      return;
+    }
     deploy_manager_delete_from_plan($plan->name, $entity->__metadata['type'], $entity);
   }
 }
diff --git a/deploy.module b/deploy.module
index 38d4bbf..48fa99b 100644
--- a/deploy.module
+++ b/deploy.module
@@ -358,7 +358,18 @@ function deploy_queue_worker_deploy($entity, &$context = NULL) {
   if ($plan && $endpoint) {
     $entities = array(array('type' => $entity->__metadata['type'], 'id' => $entity->__metadata['id']));
     $iterator = deploy_iterator($entities, $plan);
-    $endpoint->deploy($entity->__metadata['deployment_key'], $iterator, $entity->__metadata['lock_name']);
+    try {
+      $endpoint->deploy($entity->__metadata['deployment_key'], $iterator, $entity->__metadata['lock_name']);
+    }
+    // The deployment failed, most probably because of missing dependencies.
+    catch (Exception $e) {
+      $entity_type = $entity->__metadata['type'];
+      list($entity_id, $revision_id) = entity_extract_ids($entity_type, $entity);
+      $revision_id = ($revision_id === NULL) ? 0 : $revision_id;
+      drupal_set_message(t('Deploying !entity_type !entity_id of revision !revision_id to deployment plan @plan failed.', array('!entity_type' => $entity_type, '!entity_id' => $entity_id, '!revision_id' => $revision_id, '@plan' => $entity->__metadata['plan_name'])), 'error');
+      watchdog('deploy', 'Deploying !entity_type !entity_id of revision !revision_id to deployment plan @plan failed.', array('!entity_type' => $entity_type, '!entity_id' => $entity_id, '!revision_id' => $revision_id, '@plan' => $entity->__metadata['plan_name']), WATCHDOG_ERROR);
+      $_SESSION['deploy'][$entity->__metadata['plan_name']][$entity_type][$entity_id] = FALSE;
+    }
   }
 }
 
