diff --git a/.travis.yml b/.travis.yml
index 8f9edfa71434af8780ecff685a304ddd6fb06a51..3660b94f2c76cf040b38bbe0a639a06e7b789e54 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -115,11 +115,11 @@ script:
 
 after_success:
   - if [[ "${TRAVIS_OS_NAME}" = "linux" && "${GCC_VER}" = "4.8" ]]; then
-         cp build_px4fmu-v1_default/src/firmware/nuttx/nuttx-px4fmu-v1-default.px4 px4fmu-v1_default.px4
+         make package_firmware
+      && cp build_px4fmu-v1_default/src/firmware/nuttx/nuttx-px4fmu-v1-default.px4 px4fmu-v1_default.px4
       && cp build_px4fmu-v2_default/src/firmware/nuttx/nuttx-px4fmu-v2-default.px4 px4fmu-v2_default.px4
       && cp build_px4fmu-v4_default/src/firmware/nuttx/nuttx-px4fmu-v4-default.px4 px4fmu-v4_default.px4
       && cp build_px4-stm32f4discovery_default/src/firmware/nuttx/nuttx-px4-stm32f4discovery-default.px4 px4-stm32f4discovery-default.px4
-      && zip Firmware.zip px4fmu-v1_default.px4 px4fmu-v2_default.px4 px4fmu-v4_default.px4 px4-stm32f4discovery-default.px4
       && ./CI-Tools/s3cmd-put px4fmu-v1_default.px4 px4fmu-v2_default.px4 px4fmu-v4_default.px4 px4-stm32f4discovery-default.px4 build_px4fmu-v2_default/parameters.xml build_px4fmu-v2_default/airframes.xml CI-Tools/directory/index.html Firmware/$TRAVIS_BRANCH/
       && ./CI-Tools/s3cmd-put Firmware.zip archives/Firmware/$TRAVIS_BRANCH/$TRAVIS_BUILD_ID/
       && ./CI-Tools/s3cmd-put CI-Tools/directory/index.html archives/Firmware/$TRAVIS_BRANCH/
diff --git a/Makefile b/Makefile
index 55e3ebbf2285971dd78b5e39e812d0a544ec661c..124c37fdb0541b4889076ac21c413bba1a36fd7d 100644
--- a/Makefile
+++ b/Makefile
@@ -203,6 +203,9 @@ check: px4fmu-v1_default px4fmu-v2_default px4fmu-v4_default px4-stm32f4discover
 tests: posix_sitl_default
 	@(cd unittests && ./run_tests.sh)
 
+package_firmware:
+	@zip --junk-paths Firmware.zip `find . -name \*.px4`
+
 clean:
 	@rm -rf build_*/
 	@(cd NuttX/nuttx && make clean)