diff --git a/handlers/tar.helper.in b/handlers/tar.helper.in
index 4a483bec0b7085477ff1b0bc12d99dd61abdeee3..91fec34e8c2818f9cbffd9389fb5e9104032b496 100644
--- a/handlers/tar.helper.in
+++ b/handlers/tar.helper.in
@@ -25,7 +25,8 @@ tar_wizard() {
        "none"     "do not filter trough" off \
        "compress" "filter trough compress" off \
        "gzip"     "filter trough gzip" off \
-       "bzip"     "filter trough bzip" on
+       "bzip"     "filter trough bzip" on \
+       "xz"       "filter trough xz" off
    [ $? = 1 ] && return;
    result="$REPLY"
    tar_compress="compress = $REPLY "
diff --git a/handlers/tar.in b/handlers/tar.in
index b4f8c58bea31847dae357ed18ea1acf8328043c1..eb5942b8a958f4aeaf7cfd7e648cbf6d9ed54a49 100644
--- a/handlers/tar.in
+++ b/handlers/tar.in
@@ -48,6 +48,10 @@ case $compress in
       compress_option="-j"
       EXTENSION="tar.bz2"
       ;;
+   "xz")
+      compress_option="-J"
+      EXTENSION="tar.xz"
+      ;;
    "none")
       compress_option=""
       ;;