diff --git a/tc/tc0701.cpp b/tc/tc0701.cpp
index e6280d08c..f560d8e02 100755
--- a/tc/tc0701.cpp
+++ b/tc/tc0701.cpp
@@ -991,14 +991,14 @@ void TTS_sender::add_datiiva(const TRecordset& mov)
 		TCodiceIVA c(rmoviva.get(RMI_CODIVA).as_string());
 		bool agricolo = c.get_int("S4") == 1;
 		TString16 codcomp;
+		TString key;
+		key.format("%03ld|%03ld|%06ld", rmoviva.get(RMI_GRUPPO).as_int(), rmoviva.get(RMI_CONTO).as_int(), rmoviva.get(RMI_SOTTOCONTO).as_int());
 	
 		if (corrispettivo)
 			if (imposta == ZERO)
 				imposta = c.scorpora(imponibile);
 		if (regime_agricolo(mov) && agricolo)
 		{
-			TString key;
-			key.format("%03ld|%03ld|%06ld", rmoviva.get(RMI_GRUPPO).as_int(), rmoviva.get(RMI_CONTO).as_int(), rmoviva.get(RMI_SOTTOCONTO).as_int());
 			const TRectype & pcon = cache().get(LF_PCON, key);
 			codcomp = pcon.get(PCN_IVACOMP);
 		}
@@ -1019,7 +1019,7 @@ void TTS_sender::add_datiiva(const TRecordset& mov)
 		else
 			if (rmoviva.get(RMI_TIPOCR).as_int() > 0)
 				codiva11 = cod2ricl("TSI11", tipocr);
-		key.format("%04ld%04ld", codiva, codiva11);
+		key.format("%04ld%04ld%s", codiva, codiva11, (const char *) key);
 		TIVA_item * item = (TIVA_item *) _iva.objptr(key);
 
 		if (item == NULL)