diff --git a/Build/AtlasBuildScripts/checkout_Gaudi.sh b/Build/AtlasBuildScripts/checkout_Gaudi.sh
index 8d89cc12a443d3bec8f48daceddba04fa18c4f91..fcadbd9ddd1450c94a6c580876ff394db58edcb3 100755
--- a/Build/AtlasBuildScripts/checkout_Gaudi.sh
+++ b/Build/AtlasBuildScripts/checkout_Gaudi.sh
@@ -62,12 +62,17 @@ if [ "$HASHFILE" != "" ]; then
     echo "Writing the commit hash into file: $HASHFILE"
 fi
 
-# Clone the repository:
-git clone https://gitlab.cern.ch/atlas/Gaudi.git \
+if [ ! -d "${SOURCEDIR}" ]; then
+    # Clone the repository:
+    git clone https://gitlab.cern.ch/atlas/Gaudi.git \
     ${SOURCEDIR}
+else
+    echo "${SOURCEDIR} already exists -> assume previous checkout"
+fi
 
 # Get the appropriate tag of it:
 cd ${SOURCEDIR}
+git fetch origin
 git checkout ${TAGBRANCH}
 
 # If an output file was not specified, stop here:
diff --git a/Build/AtlasBuildScripts/checkout_atlasexternals.sh b/Build/AtlasBuildScripts/checkout_atlasexternals.sh
index ebf07cbc34ce8834d8e068712eb4d0cffdeb0aea..219215043db823225dcaca2d202caeab61ecf8cf 100755
--- a/Build/AtlasBuildScripts/checkout_atlasexternals.sh
+++ b/Build/AtlasBuildScripts/checkout_atlasexternals.sh
@@ -67,11 +67,16 @@ if [ "$HASHFILE" != "" ]; then
     echo "Writing the commit hash into file: $HASHFILE"
 fi
 
-# Clone the repository:
-git clone ${EXTERNALSURL} ${SOURCEDIR}
+if [ ! -d "${SOURCEDIR}" ]; then
+    # Clone the repository:
+    git clone ${EXTERNALSURL} ${SOURCEDIR}
+else
+    echo "${SOURCEDIR} already exists -> assume previous checkout"
+fi
 
 # Get the appropriate tag of it:
 cd ${SOURCEDIR}
+git fetch origin
 git checkout ${TAGBRANCH}
 
 # If an output file was not specified, stop here:
@@ -81,4 +86,4 @@ fi
 
 # Write the hash of whatever we have checked out currently, into the
 # specified output file:
-git rev-parse ${TAGBRANCH} > ${HASHFILE}
\ No newline at end of file
+git rev-parse ${TAGBRANCH} > ${HASHFILE}