diff --git a/gas/testsuite/gas/all/.Sanitize b/gas/testsuite/gas/all/.Sanitize
index b86be90e9d5..d0f631213a4 100644
--- a/gas/testsuite/gas/all/.Sanitize
+++ b/gas/testsuite/gas/all/.Sanitize
@@ -49,4 +49,38 @@ Things-to-lose:
 
 Do-last:
 
+sky_files="gas.exp"
+if ( echo $* | grep keep\-sky > /dev/null ) ; then
+	for i in $sky_files ; do
+		if test ! -d $i && (grep sanitize-sky $i > /dev/null) ; then
+			if [ -n "${verbose}" ] ; then
+				echo Keeping sky stuff in $i
+			fi
+		fi
+	done
+else
+	for i in $sky_files ; do
+		if test ! -d $i && (grep sanitize-sky $i > /dev/null) ; then
+			if [ -n "${verbose}" ] ; then
+				echo Removing traces of \"sky\" from $i...
+			fi
+			cp $i new
+			sed '/start\-sanitize\-sky/,/end-\sanitize\-sky/d' < $i > new
+			if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
+				if [ -n "${verbose}" ] ; then
+					echo Caching $i in .Recover...
+				fi
+				mv $i .Recover
+			fi
+			mv new $i
+		fi
+	done
+fi
+
+for i in * ; do
+	if test ! -d $i && (grep sanitize $i > /dev/null) ; then
+		echo '***' Some mentions of Sanitize are still left in $i! 1>&2
+	fi
+done
+
 # End of file.