diff --git a/include/host.mk b/include/host.mk
index ec3ae27..fc55b63 100644
--- a/include/host.mk
+++ b/include/host.mk
@@ -45,7 +45,12 @@ $(TMP_DIR)/.host.mk: $(TOPDIR)/include/host.mk
 			echo "FIND_L=find -L \$$(1)" >> $@; \
 		else \
 			echo "FIND_L=find \$$(1) -follow" >> $@; \
-		fi \
+		fi ; \
+		[ -r /etc/os-release ] && \
+			eval "$$(cat /etc/os-release)" && \
+				echo "$$ID_LIKE" | grep -qE '(rhel|fedora)' && \
+					[ "$$VERSION_ID" -ge 7 ] && \
+						echo "USE_HOST_LZMA:=1" >> $@ \
 	) >/dev/null 2>/dev/null
 
 endif
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index 211201a..312eabf 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -70,6 +70,13 @@ $(eval $(call TestHostCommand,libssl, \
 	echo 'int main(int argc, char **argv) { SSL_library_init(); return 0; }' | \
 		gcc -include openssl/ssl.h -x c -o $(TMP_DIR)/a.out - -lcrypto -lssl))
 
+ifeq ($(USE_HOST_LZMA),1)
+$(eval $(call TestHostCommand,liblzma, \
+	Please install xz development package.  (Missing liblzma.so or lzma.h), \
+	echo 'int main(int argc, char **argv) { lzma_stream strm = LZMA_STREAM_INIT; lzma_ret ret = lzma_easy_encoder(&strm, 1, LZMA_CHECK_CRC64); if (ret == LZMA_OK) { lzma_end(&strm); return 0; } else { return -1; } }' | \
+		gcc -include lzma.h -x c -o $(TMP_DIR)/a.out - -llzma))
+endif
+
 
 $(eval $(call SetupHostCommand,tar,Please install GNU 'tar', \
 	gtar --version 2>&1 | grep GNU, \
diff --git a/tools/Makefile b/tools/Makefile
index 60041dd..a4bc127 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -27,7 +27,10 @@ tools-$(BUILD_TOOLCHAIN) += gmp mpfr mpc libelf expat
 tools-y += m4 libtool autoconf automake flex bison pkg-config sed mklibs
 tools-y += sstrip make-ext4fs e2fsprogs mtd-utils mkimage
 tools-y += firmware-utils patch-image patch quilt yaffs2 flock padjffs2
-tools-y += mm-macros missing-macros xz cmake scons bc findutils gengetopt patchelf
+tools-y += mm-macros missing-macros cmake scons bc findutils gengetopt patchelf
+ifneq ($(USE_HOST_LZMA),1)
+tools-y += xz
+endif
 tools-$(CONFIG_TARGET_orion_generic) += wrt350nv2-builder upslug2
 tools-$(CONFIG_powerpc) += upx
 tools-$(CONFIG_TARGET_x86) += qemu
@@ -45,16 +48,18 @@ $(curdir)/flex/compile := $(curdir)/libtool/install
 $(curdir)/pkg-config/compile := $(curdir)/sed/install
 $(curdir)/libtool/compile := $(curdir)/sed/install $(curdir)/m4/install $(curdir)/autoconf/install $(curdir)/automake/install $(curdir)/missing-macros/install
 $(curdir)/squashfs/compile := $(curdir)/lzma-old/install
+ifneq ($(USE_HOST_LZMA),1)
 $(curdir)/squashfs4/compile := $(curdir)/xz/install
+endif
 $(curdir)/quilt/compile := $(curdir)/sed/install $(curdir)/autoconf/install $(curdir)/findutils/install
 $(curdir)/autoconf/compile := $(curdir)/m4/install
-$(curdir)/automake/compile := $(curdir)/m4/install $(curdir)/autoconf/install $(curdir)/pkg-config/install $(curdir)/xz/install
+$(curdir)/automake/compile := $(curdir)/m4/install $(curdir)/autoconf/install $(curdir)/pkg-config/install $(if $(filter 1,$(USE_HOST_LZMA)),,$(curdir)/xz/install)
 $(curdir)/gmp/compile := $(curdir)/libtool/install
 $(curdir)/mpc/compile := $(curdir)/mpfr/install $(curdir)/gmp/install
 $(curdir)/mpfr/compile := $(curdir)/gmp/install
 $(curdir)/ppl/compile := $(curdir)/gmp/install
 $(curdir)/cloog/compile := $(curdir)/ppl/install
-$(curdir)/mtd-utils/compile := $(curdir)/e2fsprogs/install $(curdir)/xz/install
+$(curdir)/mtd-utils/compile := $(curdir)/e2fsprogs/install $(if $(filter 1,$(USE_HOST_LZMA)),,$(curdir)/xz/install)
 $(curdir)/mkimage/compile := $(curdir)/sed/install
 $(curdir)/mklibs/compile := $(curdir)/libtool/install
 $(curdir)/qemu/compile := $(curdir)/e2fsprogs/install
diff --git a/tools/squashfs4/Makefile b/tools/squashfs4/Makefile
index 50b70fb..2c0ee0d 100644
--- a/tools/squashfs4/Makefile
+++ b/tools/squashfs4/Makefile
@@ -24,7 +24,7 @@ define Host/Compile
 		XZ_SUPPORT=1 \
 		LZMA_XZ_SUPPORT=1 \
 		XATTR_SUPPORT= \
-		LZMA_LIB="$(STAGING_DIR_HOST)/lib/liblzma.a" \
+		$(if $(filter 1,$(USE_HOST_LZMA)),,LZMA_LIB="$(STAGING_DIR_HOST)/lib/liblzma.a") \
 		EXTRA_CFLAGS="-I$(STAGING_DIR_HOST)/include" \
 		mksquashfs unsquashfs
 endef
