diff --git a/src/Composer/Command/SelfUpdateCommand.php b/src/Composer/Command/SelfUpdateCommand.php
index 28efe3a9f..f741beeca 100644
--- a/src/Composer/Command/SelfUpdateCommand.php
+++ b/src/Composer/Command/SelfUpdateCommand.php
@@ -59,7 +59,10 @@ EOT
// free the variable to unlock the file
unset($phar);
rename($tempFilename, $localFilename);
- } catch (\UnexpectedValueException $e) {
+ } catch (\Exception $e) {
+ if (!$e instanceof \UnexpectedValueException && !$e instanceof \PharException) {
+ throw $e;
+ }
unlink($tempFilename);
$output->writeln('The download is corrupt ('.$e->getMessage().').');
$output->writeln('Please re-run the self-update command to try again.');