diff --git a/models/handle-model-archives.sh b/models/handle-model-archives.sh
index 114c3ddfd3fa88eadebe9d6b60f61ec1c40b8654..133be0b2ff6bc56cd23f297d850a4164b20afc7c 100755
--- a/models/handle-model-archives.sh
+++ b/models/handle-model-archives.sh
@@ -73,12 +73,20 @@ function extract() {
 function restore() {
 	export MERGED_MODEL_ARCHIVE="${JOB_DIRECTORY}/merged-models.tar.xz"
 	tar -xpf "${MERGED_MODEL_ARCHIVE}"
-	mv "${JOB_DIRECTORY}/merged-models/"* "${JOB_DIRECTORY}"
+	for I in "${JOB_DIRECTORY}/merged-models/"* ; do
+		if [ -d "$I" ] ; then
+			TARGET=`basename $I`
+			if [ -d "${JOB_DIRECTORY}/${TARGET}" ] ; then
+				rm -rf "${JOB_DIRECTORY}/${TARGET}"
+			fi
+			mv "$I" "${JOB_DIRECTORY}"
+		fi
+	done
 	rmdir merged-models
 	# xmi and yaml files
 	export MODIFICATIONS_ARCHIVE="${JOB_DIRECTORY}/modifications.tar.xz"
 	tar -xpf "${MODIFICATIONS_ARCHIVE}"
-	mv modifications/* .
+	mv -f modifications/* .
 	rmdir modifications
 }
 
diff --git a/models/mitgcm/handle-model-archives.sh b/models/mitgcm/handle-model-archives.sh
new file mode 100755
index 0000000000000000000000000000000000000000..cdb75bfb14f9b472ffc8034d51c2ecf5c5489ba6
--- /dev/null
+++ b/models/mitgcm/handle-model-archives.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+
+export BASE_DIR=$(cd "$(dirname "$0")"; pwd)
+
+. "${BASE_DIR}/../../common-functions.rc"
+
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
+if [ -f "$BASE_DIR/config" ] ; then
+        . $BASE_DIR/config
+else
+        echo "Config file not found."
+        exit 1
+fi
+
+export JAVA_OPTS="-Dlogback.configurationFile=${BASE_DIR}/logback.xml"
+
+checkDirectory "Result directory" "${OPTIMIZATION_DATA}"
+
+for JOB_DIRECTORY in `find "${OPTIMIZATION_DATA}/jss"* -name '*uvic*job'` ; do
+	BASENAME=`basename $JOB_DIRECTORY`
+	information "----------------------------------------"
+	information $BASENAME
+	information "----------------------------------------"
+
+	export JOB_DIRECTORY
+
+	checkDirectory "job directory" "${JOB_DIRECTORY}"
+
+	export ORIGINAL_ARCHIVE="${JOB_DIRECTORY}/optimized-models.tar.xz"
+	export OPTIMIZED_ARCHIVE="${JOB_DIRECTORY}/original-model.tar.xz"
+	export COMBINED_ARCHIVE="${JOB_DIRECTORY}/kieker-repositories.tar.xz"
+
+	cd "${JOB_DIRECTORY}"
+
+	if [ -f "${ORIGINAL_ARCHIVE}" ] && [ -f "${OPTIMIZED_ARCHIVE}" ] ; then
+		tar -xpf "${ORIGINAL_ARCHIVE}"
+		tar -xpf "${OPTIMIZED_ARCHIVE}"
+	elif [ -f "${COMBINED_ARCHIVE}" ] ; then
+		rm -rf "${JOB_DIRECTORY}/original-model"
+		for J in "${JOB_DIRECTORY}/optimized-"* ; do
+			if [ -d "$J" ] ; then
+				rm -rf "$J"
+			fi
+		done
+		tar -xpf "${COMBINED_ARCHIVE}"
+		mv "${JOB_DIRECTORY}/kieker-repositories/"* .
+	else
+		warning "No data."
+	fi
+done
+
+
diff --git a/models/run-architecture-analysis.sh b/models/run-architecture-analysis.sh
index 954156847e57b7b3a4095f491b441ff04c9a0ebe..949ed8f23fa6e94970031cd7eb1229ab15cfca7c 100755
--- a/models/run-architecture-analysis.sh
+++ b/models/run-architecture-analysis.sh
@@ -22,6 +22,7 @@ if [ "$2" != "" ] ; then
 	export MODEL="$2"
 else
 	echo "Missing model identifier"
+	exit
 fi
 
 export JAVA_OPTS="-Dlogback.configurationFile=${BASE_DIR}/logback.xml"