diff --git a/modules/update/update.manager.inc b/modules/update/update.manager.inc
index 9ad0d08e07608101a733b90d167a762e2ea9f9be..0e699522a064b96c653925c8b3133764bc7fb7c7 100644
--- a/modules/update/update.manager.inc
+++ b/modules/update/update.manager.inc
@@ -580,8 +580,21 @@ function update_manager_install_form_submit($form, &$form_state) {
   drupal_get_updaters();
 
   $project_location = $directory . '/' . $project;
-  $updater = Updater::factory($project_location);
-  $project_title = Updater::getProjectTitle($project_location);
+  try {
+    $updater = Updater::factory($project_location);
+  }
+  catch (Exception $e) {
+    form_set_error($field, $e->getMessage());
+    return;
+  }
+
+  try {
+    $project_title = Updater::getProjectTitle($project_location);
+  }
+  catch (Exception $e) {
+    form_set_error($field, $e->getMessage());
+    return;
+  }
 
   if (!$project_title) {
     form_set_error($field, t('Unable to determine %project name.', array('%project' => $project)));