diff --git a/contrib/update-images.sh b/contrib/update-images.sh
index 72735f6c3131af4c0d2dc3aae5be9e50aa75f72a..5fb870478a087f07001f7e0a646d6162ab9f2d5e 100755
--- a/contrib/update-images.sh
+++ b/contrib/update-images.sh
@@ -1,10 +1,17 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
-FACTORY="https://firmware.darmstadt.freifunk.net/images/stable/factory/"
-SYSUPGRADE="https://firmware.darmstadt.freifunk.net/images/stable/sysupgrade/"
+set -e
 
-mkdir images
+BASE_URL="https://firmware.darmstadt.freifunk.net/images/"
 
-curl -o images/gluon-factory-example.html "$FACTORY"
-curl -o images/gluon-sysupgrade-example.html "$SYSUPGRADE"
+for BRANCH in "stable" "beta" "testing";
+do
+	echo "updating ${BRANCH}"
 
+	mkdir -p images/${BRANCH}
+
+	curl -sSfo images/${BRANCH}/gluon-factory-example.html "${BASE_URL}${BRANCH}/factory/"
+	curl -sSfo images/${BRANCH}/gluon-other-example.html "${BASE_URL}${BRANCH}/other/"
+	curl -sSfo images/${BRANCH}/gluon-sysupgrade-example.html "${BASE_URL}${BRANCH}/sysupgrade/"
+
+done