diff --git a/Build/AtlasBuildScripts/checkout_Gaudi.sh b/Build/AtlasBuildScripts/checkout_Gaudi.sh
index 3693c342d2c75c5ec7d16d567fe36ae975b84142..a536cf4c3b6273dc7f665607b3edd27c644cf613 100755
--- a/Build/AtlasBuildScripts/checkout_Gaudi.sh
+++ b/Build/AtlasBuildScripts/checkout_Gaudi.sh
@@ -13,15 +13,18 @@ set -e
 
 # Function printing the usage information for the script
 usage() {
-    echo "Usage: checkout_Gaudi.sh <-t branch/tag> " \
-        "<-s source directory> [-o hash_file.txt]"
+    echo "Usage: checkout_Gaudi.sh [options]"
+    echo "  Options:"
+    echo "    -t branch/tag: Mandatory branch/tag/hash to check out"
+    echo "    -s directory: Mandatory source directory to use"
+    echo "    -e url: Optional source URL to use for the checkout"
 }
 
 # Parse the command line arguments:
 TAGBRANCH=""
 SOURCEDIR=""
-HASHFILE=""
-while getopts ":t:o:s:h" opt; do
+GAUDIURL="https://gitlab.cern.ch/atlas/Gaudi.git"
+while getopts ":t:o:s:e:h" opt; do
     case $opt in
         t)
             TAGBRANCH=$OPTARG
@@ -29,8 +32,8 @@ while getopts ":t:o:s:h" opt; do
         s)
             SOURCEDIR=$OPTARG
             ;;
-        o)
-            HASHFILE=$OPTARG
+        e)
+            GAUDIURL=$OPTARG
             ;;
         h)
             usage
@@ -58,33 +61,16 @@ fi
 
 # Tell the user what will happen:
 echo "Checking out Gaudi tag/branch: $TAGBRANCH"
-if [ "$HASHFILE" != "" ]; then
-    echo "Writing the commit hash into file: $HASHFILE"
-fi
+echo "   from: $GAUDIURL"
 
 if [ ! -d "${SOURCEDIR}" ]; then
     # Clone the repository:
-    git clone https://gitlab.cern.ch/atlas/Gaudi.git \
-    ${SOURCEDIR}
+    git clone ${GAUDIURL} ${SOURCEDIR}
 else
     echo "${SOURCEDIR} already exists -> assume previous checkout"
 fi
 
-# Get the appropriate tag of it:
+# Get the appropriate version of it:
 cd ${SOURCEDIR}
-git fetch origin
-git checkout ${TAGBRANCH}
-
-# If this is a branch, fast forward to the latest version of it:
-if git show-ref -q --verify "refs/heads/${TAGBRANCH}" 2>/dev/null; then
-    git reset --hard ${TAGBRANCH}
-fi
-
-# If an output file was not specified, stop here:
-if [ "$HASHFILE" = "" ]; then
-    exit 0
-fi
-
-# Write the hash of whatever we have checked out currently, into the
-# specified output file:
-git rev-parse ${TAGBRANCH} > ${HASHFILE}
+git fetch --prune origin
+git checkout -f ${TAGBRANCH}
diff --git a/Build/AtlasBuildScripts/checkout_atlasexternals.sh b/Build/AtlasBuildScripts/checkout_atlasexternals.sh
index 36b04028c079f7fee952e8b4209d209f8420c1ec..ba9ebadd509ded5bd6220acaf4689984a9867939 100755
--- a/Build/AtlasBuildScripts/checkout_atlasexternals.sh
+++ b/Build/AtlasBuildScripts/checkout_atlasexternals.sh
@@ -13,17 +13,18 @@ set -e
 
 # Function printing the usage information for the script
 usage() {
-    echo "Usage: checkout_atlasexternals.sh <-t branch/tag> " \
-        "<-s source directory> <-e atlas externals repo url> " \
-	"[-o hash_file.txt]"
+    echo "Usage: checkout_atlasexternals.sh [options]"
+    echo "  Options:"
+    echo "    -t branch/tag: Mandatory branch/tag/hash to check out"
+    echo "    -s directory: Mandatory source directory to use"
+    echo "    -e url: Optional source URL to use for the checkout"
 }
 
 # Parse the command line arguments:
 TAGBRANCH=""
 SOURCEDIR=""
-HASHFILE=""
 EXTERNALSURL="https://:@gitlab.cern.ch:8443/atlas/atlasexternals.git"
-while getopts ":t:o:s:h:e" opt; do
+while getopts ":t:o:s:e:h" opt; do
     case $opt in
         t)
             TAGBRANCH=$OPTARG
@@ -31,12 +32,9 @@ while getopts ":t:o:s:h:e" opt; do
         s)
             SOURCEDIR=$OPTARG
             ;;
-        o)
-            HASHFILE=$OPTARG
+        e)
+            EXTERNALSURL=$OPTARG
             ;;
-	e)
-	    EXTERNALSURL=$OPTARG
-	    ;;
         h)
             usage
             exit 0
@@ -63,9 +61,7 @@ fi
 
 # Tell the user what will happen:
 echo "Checking out atlasexternals tag/branch: $TAGBRANCH"
-if [ "$HASHFILE" != "" ]; then
-    echo "Writing the commit hash into file: $HASHFILE"
-fi
+echo "   from: $EXTERNALSURL"
 
 if [ ! -d "${SOURCEDIR}" ]; then
     # Clone the repository:
@@ -74,21 +70,7 @@ else
     echo "${SOURCEDIR} already exists -> assume previous checkout"
 fi
 
-# Get the appropriate tag of it:
+# Get the appropriate version of it:
 cd ${SOURCEDIR}
-git fetch origin
-git checkout ${TAGBRANCH}
-
-# If this is a branch, fast forward to the latest version of it:
-if git show-ref -q --verify "refs/heads/${TAGBRANCH}" 2>/dev/null; then
-    git reset --hard ${TAGBRANCH}
-fi
-
-# If an output file was not specified, stop here:
-if [ "$HASHFILE" = "" ]; then
-    exit 0
-fi
-
-# Write the hash of whatever we have checked out currently, into the
-# specified output file:
-git rev-parse ${TAGBRANCH} > ${HASHFILE}
+git fetch --prune origin
+git checkout -f ${TAGBRANCH}
diff --git a/Projects/Athena/externals.txt b/Projects/Athena/externals.txt
index 41aaab97057b9912f6662d5250a1697e1e12f8c8..d0cf6678705f4ee131e6894282f3c3249669a0e6 100644
--- a/Projects/Athena/externals.txt
+++ b/Projects/Athena/externals.txt
@@ -1,5 +1,9 @@
 # Versions of the various externals to build before starting the build of
 # this project, when doing a full stack nightly build.
+#
+# Remember that when specifying the name of a branch, you *must* put
+# an "origin/" prefix before it. For tags however this is explicitly
+# forbidden.
 
-AthenaExternalsVersion = master
+AthenaExternalsVersion = origin/master
 GaudiVersion = v28r0.004