diff --git a/ghcup b/ghcup
index 4f2f0c154a039c95a095f9329a20be09383e895b..16b87c8737622150125b2a57ad89a525c7092e58 100755
--- a/ghcup
+++ b/ghcup
@@ -1070,6 +1070,10 @@ unpack() {
             debug_message "gzip -cd \"${filename}\" | tar -xf -"
             ( gzip -cd "${filename}" | tar xf - ; ) || die "unpacking failed!"
             ;;
+        bz2)
+            debug_message "bzip2 -cd \"${filename}\" | tar -xf -"
+            ( bzip2 -cd "${filename}" | tar xf - ; ) || die "unpacking failed!"
+            ;;
         tar)
             edo tar xf "${filename}"
             ;;