diff --git a/ve/ve7700.cpp b/ve/ve7700.cpp
index 74bd00cb2..16a6f09f7 100755
--- a/ve/ve7700.cpp
+++ b/ve/ve7700.cpp
@@ -497,28 +497,48 @@ void TTrasferimentoGalileo_mask::trasferisci()
   
 	if (get_bool(F_CLIFO))
   {
-	  TString query_header;
-		query_header << "ODBC(" << get(F_DSN1) << ',' << get(F_USR1) << ',' << get(F_PWD1) << ")\n";
-		TGalileo_clifo pc;
-		pc.set_data_limite(get_date(F_DATA));
-		pc.init(TR("Clienti/Fornitori"), query_header, log);
-		go_on = pc.trasferisci();
-		book.add(rep);
-		if (go_on)
-			pc.dump();
-		rep_to_print = true;
+		TString80 dsn = get(F_DSN1);
+		if (dsn.empty())
+		{
+			TSystemisamfile clifo(LF_CLIFO);
+			clifo.overwrite("clifo.txt");
+		}
+		else
+		{
+			TString query_header;
+			query_header << "ODBC(" << get(F_DSN1) << ',' << get(F_USR1) << ',' << get(F_PWD1) << ")\n";
+			TGalileo_clifo pc;
+			pc.set_data_limite(get_date(F_DATA));
+			pc.init(TR("Clienti/Fornitori"), query_header, log);
+			go_on = pc.trasferisci();
+			book.add(rep);
+			if (go_on)
+				pc.dump();
+			rep_to_print = true;
+		}
 	}
 	if (go_on && get_bool(F_ARTICOLI))
 	{
-	  TString query_header;
-		query_header << "ODBC(" << get(F_DSN2) << ',' << get(F_USR2) << ',' << get(F_PWD2) << ")\n";
-		TGalileo_articoli pc;
-		pc.init(TR("Articoli"), query_header, log);
-		go_on = pc.trasferisci();
-		book.add(rep);
-		if (go_on)
-			pc.dump();
-		rep_to_print = true;
+		TString80 dsn = get(F_DSN2);
+		if (dsn.empty())
+		{
+			TSystemisamfile anamag(LF_ANAMAG);
+			anamag.overwrite("anamag.txt");
+			TSystemisamfile umart(LF_UMART);
+			umart.overwrite("umart.txt");
+		}
+		else
+		{
+			TString query_header;
+			query_header << "ODBC(" << get(F_DSN2) << ',' << get(F_USR2) << ',' << get(F_PWD2) << ")\n";
+			TGalileo_articoli pc;
+			pc.init(TR("Articoli"), query_header, log);
+			go_on = pc.trasferisci();
+			book.add(rep);
+			if (go_on)
+				pc.dump();
+			rep_to_print = true;
+		}
 	}
   if (rep_to_print && book.pages() > 0)
 		book.preview();
diff --git a/ve/ve7700a.uml b/ve/ve7700a.uml
index 15fe6b5e3..fca123f88 100755
--- a/ve/ve7700a.uml
+++ b/ve/ve7700a.uml
@@ -70,7 +70,6 @@ END
 STRING F_DSN1 30
 BEGIN
   PROMPT 2 2 "DSN      "
-  CHECKTYPE REQUIRED
 END
 
 STRING F_USR1 16
@@ -92,7 +91,6 @@ END
 STRING F_DSN2 30
 BEGIN
   PROMPT 2 8 "DSN      "
-  CHECKTYPE REQUIRED
 END
 
 STRING F_USR2 16
diff --git a/ve/ve7701.cpp b/ve/ve7701.cpp
index 87e2042fc..bf52bd014 100755
--- a/ve/ve7701.cpp
+++ b/ve/ve7701.cpp
@@ -5,6 +5,7 @@
 #include <utility.h>
 
 #include <..\mg\anamag.h>
+#include <..\mg\umart.h>
 #include <clifo.h>
 #include <comuni.h>
 #include <doc.h>
@@ -131,7 +132,7 @@ bool TGalileo_clifo::trasferisci()
 			rec_clifo.zero();
 			rec_clifo.put(CLI_TIPOCF, tipocf);
 			rec_clifo.put(CLI_CODCF, codcf);
-			good &= test_write(clifo);
+			good &= test_write(clifo, true);
 		}
 		
 		if (good)
@@ -213,6 +214,7 @@ bool TGalileo_articoli::dump()
 	TString_array lista_anamag;
 	ini.list_variables(lista_anamag, true, "ANAMAG", true);
 	TToken_string lista_dump;
+	lista_dump.add(ANAMAG_CODART);
 	TString16 campo_dest, campo_orig;
 	FOR_EACH_ARRAY_ROW(lista_anamag,i,row)
 	{
@@ -221,19 +223,20 @@ bool TGalileo_articoli::dump()
 		if (!campo_orig.blank())
 			lista_dump.add(campo_dest);
 	}
-	lista_dump.add(ANAMAG_CODART);
 	TSystemisamfile anamag(LF_ANAMAG);
-	return (anamag.dump("anamag.txt", lista_dump) == NOERR);
+	TSystemisamfile umart(LF_UMART);
+	int err = umart.dump("umart.txt");
+	if (err == NOERR)
+		err = anamag.dump("anamag.txt", lista_dump);
+	return (err == NOERR);
 }
 
 bool TGalileo_articoli::trasferisci()
 {
   TString query = 
-		"SELECT BRISO00F.RICOD, BRISO00F.RDES1, BRISO00F.RDES2, "
-		"BRISO00F.RDES3, BRISO00F.RSUMS, BRISO00F.RITIP, "
-		"Mid([TBDAT],9,1) AS Espr1 \n"
-		"FROM BRISO00F, BTABE00F"
-		"WHERE (((Mid([TBDAT],9,1))=[RITIP]) AND ((BTABE00F.TBTIP)='COD') AND ((BTABE00F.TBELE)='RIS'))";
+		"SELECT RICOD, RDES1, RDES2, RDES3, RSUMS, RITIP \n"
+		"FROM BRISO00F, BTABE00F \n"
+		"WHERE (MID(TBDAT,9,1)=RITIP) AND (TBTIP='COD') AND (TBELE='RIS')";
 
   TRecordset& recset = create_recordset(query);
 
@@ -251,7 +254,7 @@ bool TGalileo_articoli::trasferisci()
   TGalileo_iterator pi(this);
   while (++pi)
   {	
-		const TString& codart = get_str("BRISO00F.RICOD");
+		const TString& codart = get_str("RICOD");
     rec_anamag.zero();
 		rec_anamag.put(ANAMAG_CODART, codart);
 		bool good = anamag.read() == NOERR;
@@ -259,12 +262,25 @@ bool TGalileo_articoli::trasferisci()
 		{
 			rec_anamag.zero();
 			rec_anamag.put(ANAMAG_CODART, codart);
-			good &= test_write(anamag);
+			good &= test_write(anamag, true);
 		}
 		if (good)
 		{
 			aggiorna_record(anamag, lista_anamag);
-			aggiorna_record(umart, lista_umart);
+	    rec_umart.zero();
+			rec_umart.put(UMART_CODART, codart);
+			rec_umart.put(UMART_NRIGA, 1);
+			bool good = umart.read() == NOERR;
+			if (!good)
+			{
+				rec_umart.zero();
+				rec_umart.put(UMART_CODART, codart);
+				rec_umart.put(UMART_NRIGA, 1);
+				good = (umart.write() == NOERR);
+			}
+			rec_umart.put(UMART_UM, get_str("RSUMS"));
+			rec_umart.put(UMART_FC, 1);
+			umart.rewrite();
 		}
 	}	
   return write_enabled();
diff --git a/ve/ve7701a.ini b/ve/ve7701a.ini
index fae204bec..5f274d03e 100755
--- a/ve/ve7701a.ini
+++ b/ve/ve7701a.ini
@@ -52,14 +52,14 @@ REFERENTE  =
 VALINTRA   =
 
 [ANAMAG]
-CODART     =
-DESCR      =
-DESCRAGG   =
+CODART     = 
+DESCR      = RDES1
+DESCRAGG   = RDES2
 CODARTALT  =
 
 [UMART]
 CODART     = 
-NRIGA      = _FISSO,1
-UM         =
+NRIGA      = 
+UM         = RSUMS
 FC         = _FISSO,1
 PREZZO     =
\ No newline at end of file