diff --git a/src/freedombone-image b/src/freedombone-image
index 1048e6953e12a05162a332488dc6b2e3f9c4dfb9..a34ea2a13364a94a48390fed420d4dd6f0b41743 100755
--- a/src/freedombone-image
+++ b/src/freedombone-image
@@ -154,6 +154,7 @@ rm $CURR_DIR/${PROJECT_NAME}*.img.bz2
 rm $CURR_DIR/${PROJECT_NAME}*.img
 rm $CURR_DIR/${PROJECT_NAME}*.sig
 rm $CURR_DIR/${PROJECT_NAME}*.vdi
+rm $CURR_DIR/${PROJECT_NAME}*.qcow2
 
 if [ -d $BUILD_DIR ]; then
     rm -rf $BUILD_DIR
@@ -166,6 +167,7 @@ else
 fi
 
 cp -r /etc/${PROJECT_NAME}/* $BUILD_DIR
+rm -rf $BUILD_DIR/vendor
 chown -R $CURR_USER:$CURR_USER $BUILD_DIR
 cd $BUILD_DIR
 
@@ -194,13 +196,10 @@ mv build/${PROJECT_NAME}*.bz2 ${CURR_DIR}
 mv build/${PROJECT_NAME}*.img ${CURR_DIR}
 mv build/${PROJECT_NAME}*.sig ${CURR_DIR}
 mv build/${PROJECT_NAME}*.vdi ${CURR_DIR}
+mv build/${PROJECT_NAME}*.qcow2 ${CURR_DIR}
 rm -rf ${BUILD_DIR}
 
 cd ${CURR_DIR}
-#if [[ $IMAGE_TYPE == "virtualbox"* ]]; then
-#    imgfiles=(${PROJECT_NAME}*.img)
-#    VBoxManage convertdd ${imgfiles[0]} ${imgfiles[0]}.vdi
-#fi
 
 clear
 echo "
@@ -212,7 +211,7 @@ You will be able to log into it with:
 
     Password: $PASSWORD
 "
-ls -lh ${PROJECT_NAME}*.img ${PROJECT_NAME}*.sig ${PROJECT_NAME}*.bz2 ${PROJECT_NAME}*.vdi
+ls -lh ${PROJECT_NAME}*.img ${PROJECT_NAME}*.sig ${PROJECT_NAME}*.bz2 ${PROJECT_NAME}*.vdi ${PROJECT_NAME}*.qcow2
 
 # record the default login credentials for later use
 echo "Username: $USERNAME
diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise
index f7ddff0540faafc1e4413958e01911312d62c2f3..8aa1eb8b7ee730b1c14b265dbe419fe38280cd4d 100755
--- a/src/freedombone-image-customise
+++ b/src/freedombone-image-customise
@@ -223,6 +223,11 @@ case "$MACHINE" in
         echo "echo \"4 4 1 7\" > /proc/sys/kernel/printk" \
             >> /etc/init.d/rc.local
         ;;
+    qemu)
+        # hide irrelevant console keyboard messages.
+        echo "echo \"4 4 1 7\" > /proc/sys/kernel/printk" \
+            >> /etc/init.d/rc.local
+        ;;
 esac
 
 set_apt_sources $BUILD_MIRROR
diff --git a/src/freedombone-image-make b/src/freedombone-image-make
index 40827b099b435028772971d3c03e85f6ea21c216..008205d8e7d3a3ec098bea1b82420e3974907118 100755
--- a/src/freedombone-image-make
+++ b/src/freedombone-image-make
@@ -89,6 +89,11 @@ case "$MACHINE" in
     extra_opts="\
  --grub \
  --roottype btrfs \
+"   ;;
+    qemu)
+    extra_opts="\
+ --grub \
+ --roottype btrfs \
 "   ;;
     all)
     extra_opts="\
diff --git a/src/freedombone-image-makefile b/src/freedombone-image-makefile
index ecbafbce9ca0138f13fd7267e2c047f4844a8801..b65ae1087c3c0e2ffa931a10c0a8bd88b4398289 100755
--- a/src/freedombone-image-makefile
+++ b/src/freedombone-image-makefile
@@ -164,6 +164,31 @@ test-virtualbox: virtualbox
 	VBoxManage modifyvm $(VM_NAME) --hda none
 	VBoxManage unregistervm $(VM_NAME) --delete
 
+# build a qemu image
+qemu: qemu-i386
+
+qemu-i386: prep
+	$(eval ARCHITECTURE = i386)
+	$(eval MACHINE = qemu)
+	$(MAKE_IMAGE)
+	# Convert image to qemu format
+	qemu-img convert -O qcow2 $(NAME).img $(NAME).qcow2
+	$(TAR) $(ARCHIVE) $(NAME).qcow2
+	@echo ""
+	$(SIGN)
+	@echo "Build complete."
+
+qemu-amd64: prep
+	$(eval ARCHITECTURE = amd64)
+	$(eval MACHINE = qemu)
+	$(MAKE_IMAGE)
+	# Convert image to qemu format
+	qemu-img convert -O qcow2 $(NAME).img $(NAME).qcow2
+	$(TAR) $(ARCHIVE) $(NAME).qcow2
+	@echo ""
+	$(SIGN)
+	@echo "Build complete."
+
 vendor/vmdebootstrap/vmdebootstrap: vendor-patches/vmdebootstrap/*.patch
 	freedombone-image-vmdebootstrap