diff --git a/klk2eureco.sh b/klk2eureco.sh
index a01e077..7fe0386 100755
--- a/klk2eureco.sh
+++ b/klk2eureco.sh
@@ -13,8 +13,8 @@
 TEI="$CORPUS/TEI"                 # output zipped tei files of the selection
 #TEI="$TEST/TEI"                 # output zipped tei files of the selection
 
-#TEIFORMAT="tei";
-TEIFORMAT="i5";
+TEIFORMAT="tei";
+#TEIFORMAT="i5";
 
 MASK="";
 #MASK="-m";
@@ -41,48 +41,57 @@
 
 # Generate corpus files by year and source in vrt
 
-# for VRT in $DAT/*.vrt                              # loop to be applied to yearly files
-for VRT in $DAT/klk_fi_v2_201[0-3].vrt        
-# for VRT in "$DAT/klk_fi_v2_2015.vrt"        
-# for VRT in "$DAT/klk_fi_v2_2019.vrt" "$DAT/klk_fi_v2_2020.vrt" "$DAT/klk_fi_v2_2021.vrt"  
+#for VRT in $DAT/*.vrt                              # loop to be applied to yearly files
+for VRT in "$DAT/klk_fi_v2_2021.vrt"        
 do # (
 
     BASENAME=`basename $VRT .vrt`
     YEAR=`echo $BASENAME | gawk 'BEGIN {FS="_"} {print $4}'`
 
-    echo "Generating proper XML files from $VRT in $XML/$YEAR by source..."
-    gawk -v OUTDIR="$XML" -v YEAR="$YEAR" -f vrt2xml.awk $VRT
+    ##TMP echo "Generating proper XML files from $VRT in $XML/$YEAR by source..."
+    ##TMP gawk -v OUTDIR="$XML" -v YEAR="$YEAR" -f vrt2xml.awk $VRT
+    
 
+    
     #--------------------------------------------------------
     # Checking Wellformedness of the XML and generating TEI
     #--------------------------------------------------------
 
-    for s in $XML/*/
-    # for s in $XML/Suomen_Kuvalehti/
-    do ( # threading	
+    ##TMP for s in $XML/*/
+    for s in $XML/Suomen_Kuvalehti/
+    do # ( # threading	
 	SOURCE=`basename $s`
 	x=$s/$SOURCE$YEAR.xml
 
-	# Some checks of the XML beforehand:
+	#---------------------------------------------------------------
+ 	# Some existence checks and removal of empty files beforehand:
+        #---------------------------------------------------------------
+ 	
+ 	if [[ ! -f $x ]] ; then
+ 	    echo "Warning: klk2eureco.sh: File $x does not exist; skipping";
+ 	    break;
+ 	fi
+ 
+ 	if [[ -z `grep -l "<text " $x` ]] ; then
+ 	    #echo "Warning: klk2eureco.sh: File $x does not contain any <text>s, skipping"
+ 	    echo "Warning: klk2eureco.sh: File $x does not contain any <text>s,removing"
+   	    rm -fv $x;
+ 	    break;
+ 	fi
 
-	if [[ ! -f $x ]] ; then
-	    echo "Warning: klk2eureco.sh: File $x does not exist; skipping"
-	    break;
-	fi
-
-	if [[ -z `grep "<text " $x` ]] ; then
-	    echo "Warning: klk2eureco.sh: File $x does not contain any <text>s ; skipping"
-	    break;
-	fi
-	
+	#---------------------------------
+	# checking well-formedness of $x
+	#---------------------------------
+ 	
 	echo "  checking wellformedness of $x"
-	xmllint --stream --noout $x 
+	xmllint --stream --noout $x
 	if [[ $R != "" ]] ; then
 	    echo "Error: xmllint error with error return code $R" >&2;    
 	    break; 
 	fi
 
 	
+	
 	#--------------------
 	# calling vrt2tei.pl
 	#--------------------
@@ -98,6 +107,12 @@
 	                                       # xmllint- format geht out of memory und --stream machen funktioniert nicht
 	ls -l $t
 
+	# if $t is empty, remove it:
+	if [ ! -s $i ]; then
+	    rm -f $i
+	fi
+
+	# validating $t:
 	if [ "$TEIFORMAT" == "i5" ] ; then
 	    echo "  validating $t..."
 	    xmllint --stream --noout --valid $t
@@ -106,13 +121,13 @@
 	    xmllint --stream --noout --dtdvalid $TEIDTD $t         # scheint so zu funktioneren - nicht kombinieren mit --format!
 	fi
 	
-	# echo "  zipping $x..."
-	# gzip -f $x
-	
-	# echo "  zipping $t..."
-	# gzip -f $t
-	
-	echo ) & 
+###TMP 	# echo "  zipping $x..."
+###TMP 	# gzip -f $x
+###TMP 	
+###TMP 	# echo "  zipping $t..."
+###TMP 	# gzip -f $t
+
+ 	echo # ) & 
     done
     wait # ) &                                    # wait seems to have to be there for it to terminate 
    
