diff --git a/scripts/update.sh b/scripts/update.sh
index 0f2bd505f51e9cc6c767f6bb750a6e89ad3b2ce2..f7319748bb8c40abece23a213b7e5af3333eaffc 100755
--- a/scripts/update.sh
+++ b/scripts/update.sh
@@ -7,12 +7,13 @@ set -e
 for module in $GLUON_MODULES; do
 	var=$(echo $module | tr '[:lower:]/' '[:upper:]_')
 	eval repo=\${${var}_REPO}
+	eval branch=\${${var}_BRANCH}
 	eval commit=\${${var}_COMMIT}
 
 	mkdir -p "$1"/$module
 	cd "$1"/$module
 	git init
 
-	git checkout $commit 2>/dev/null || git fetch $repo
+	git checkout $commit 2>/dev/null || git fetch $repo $branch
 	git checkout -B base $commit
 done