diff --git a/build/fp0.vcxproj b/build/fp0.vcxproj
index 300e3d7d3..e0bb85bba 100644
--- a/build/fp0.vcxproj
+++ b/build/fp0.vcxproj
@@ -294,10 +294,13 @@
true
+ true
-
+
true
-
+ Document
+ true
+
diff --git a/cd/test/cg1388.txt b/cd/test/cg1388.txt
new file mode 100644
index 000000000..57057af5b
--- /dev/null
+++ b/cd/test/cg1388.txt
@@ -0,0 +1,3 @@
+cg0.exe
+cg0700b.msk
+cg0700a.msk
diff --git a/cd/test/cg1388a.ini b/cd/test/cg1388a.ini
new file mode 100644
index 000000000..71c6e9177
--- /dev/null
+++ b/cd/test/cg1388a.ini
@@ -0,0 +1,108 @@
+[Main]
+Demo=0
+[cg0]
+Edit_19 = cg0 -0
+Edit_20 = cg0 -1
+Edit_26 = cg0 -4
+Edit_5 = cg0 -5
+File(0) = cg0.exe|X
+File(4) = cg0700b.msk|X
+Patch = 1388
+Versione = 21511200
+
+[cg9]
+File(213) = cg0700a.msk|X
+Patch = 1388
+Versione = 21511200
+
+[cg99]
+Kill(0) = bastvet.msk|x
+Kill(1) = batbzon.msk|x
+Kill(2) = bastesc.msk|x
+Kill(3) = batbnot.msk|x
+Kill(4) = batblia.msk|x
+Kill(5) = bastscc.msk|x
+Kill(6) = batbinl.msk|x
+Kill(7) = batbcfi.msk|x
+Kill(8) = batblbu.msk|x
+Kill(9) = bastmsp.msk|x
+Kill(10) = bastcfi.rep|x
+Kill(11) = bastcam.rep|x
+Kill(12) = batblia.msk|x
+Kill(13) = bastcco.msk|x
+Kill(14) = bastleg.rep|x
+Kill(15) = bastntb.rep|x
+Kill(16) = batbleg.msk|x
+Kill(17) = bastcve.rep|x
+Kill(18) = batbver.msk|x
+Kill(19) = batbesc.msk|x
+Kill(20) = batbind.msk|x
+Kill(21) = bastpdb.msk|x
+Kill(22) = batbscc.msk|x
+Kill(23) = batbcam.msk|x
+Kill(24) = batbntb.msk|x
+Kill(25) = bastnot.rep|x
+Kill(26) = bastcfi.msk|x
+Kill(27) = bastreg.msk|x
+Kill(28) = bastnot.msk|x
+Kill(29) = bastarb.rep|x
+Kill(30) = bastpor.rep|x
+Kill(31) = bastmsp.rep|x
+Kill(32) = bastpor.msk|x
+Kill(33) = batbndo.msk|x
+Kill(34) = bastzon.msk|x
+Kill(35) = bastesc.rep|x
+Kill(36) = batbdel.msk|x
+Kill(37) = bastndo.rep|x
+Kill(38) = batbvet.msk|x
+Kill(39) = bastver.rep|x
+Kill(40) = bastcve.msk|x
+Kill(41) = bastntb.msk|x
+Kill(42) = batbpor.msk|x
+Kill(43) = bastcam.msk|x
+Kill(44) = batbpdb.msk|x
+Kill(45) = bastscc.rep|x
+Kill(46) = cgtbcon.msk|x
+Kill(47) = bastpdb.rep|x
+Kill(48) = batbtit.msk|x
+Kill(49) = bastndo.msk|x
+Kill(50) = bastdpn.msk|x
+Kill(51) = batbmsp.msk|x
+Kill(52) = bastcco.rep|x
+Kill(53) = bastzon.rep|x
+Kill(54) = batbarb.msk|x
+Kill(55) = bastver.msk|x
+Kill(56) = batbins.msk|x
+Kill(57) = bastdpn.rep|x
+Kill(58) = batbdpn.msk|x
+Kill(59) = bastivd.rep|x
+Kill(60) = bastleg.msk|x
+Kill(61) = batbtra.msk|x
+Kill(62) = bastivd.msk|x
+Kill(63) = bastreg.rep|x
+Kill(64) = batbcve.msk|x
+Kill(65) = batbivd.msk|x
+Kill(66) = batbcco.msk|x
+Kill(67) = bastvet.rep|x
+Kill(68) = cg2fppro.msk|x
+Kill(69) = batbreg.msk|x
+Kill(70) = bastarb.msk|x
+
+[cg]
+Data = 30-03-2025
+Descrizione = Contabilita' Generale
+Dischi = 1
+Edit_19 = cg0 -0
+Edit_20 = cg0 -1
+Edit_26 = cg0 -4
+Edit_5 = cg0 -5
+Moduli = ba
+OE333M =
+OEM =
+Patch = 1388
+PostProcess = bainst -0 CG
+PreProcess =
+Prezzo(1) =
+Prezzo(2) =
+Versione = 21511200
+
diff --git a/cd/test/cg1388a1.zip b/cd/test/cg1388a1.zip
new file mode 100644
index 000000000..2544f989c
Binary files /dev/null and b/cd/test/cg1388a1.zip differ
diff --git a/cd/test/ve1388.txt b/cd/test/ve1388.txt
new file mode 100644
index 000000000..7421b8d24
--- /dev/null
+++ b/cd/test/ve1388.txt
@@ -0,0 +1,3 @@
+ve0.exe
+ve0100o.msk
+cg0700a.msk
diff --git a/cd/test/ve1388a.ini b/cd/test/ve1388a.ini
new file mode 100644
index 000000000..425fb52d6
--- /dev/null
+++ b/cd/test/ve1388a.ini
@@ -0,0 +1,142 @@
+[Main]
+Demo=0
+[ve0]
+Edit_163 = ve0 -4
+Edit_33 = ve0 -0
+Edit_4 = ve0 -4
+Edit_5 = ve0 -4
+File(21) = ve0.exe|X
+Patch = 1388
+Versione = 21511200
+
+[ve9]
+File(175) = ve0100o.msk|X
+Patch = 1388
+Versione = 21511200
+
+[ve99]
+Kill(0) = batbcld.msk|x
+Kill(1) = bastspp.rep|x
+Kill(2) = ve7600a.msk|x
+Kill(3) = bastbnp.rep|x
+Kill(4) = batbcaa.msk|x
+Kill(5) = bastabe.rep|x
+Kill(6) = batbmre.msk|x
+Kill(7) = bastgcg.rep|x
+Kill(8) = batbgca.msk|x
+Kill(9) = basttip.msk|x
+Kill(10) = bastums.rep|x
+Kill(11) = bastcaa.rep|x
+Kill(12) = ve7200a.frm|x
+Kill(13) = batbctr.msk|x
+Kill(14) = basttri.rep|x
+Kill(15) = bastspp.msk|x
+Kill(16) = batbtip.msk|x
+Kill(17) = bastrfa.msk|x
+Kill(18) = bastbnp.msk|x
+Kill(19) = ve7300a.msk|x
+Kill(20) = bastrfa.rep|x
+Kill(21) = basttag.rep|x
+Kill(22) = bastfca.msk|x
+Kill(23) = bastfrd.msk|x
+Kill(24) = basteld.rep|x
+Kill(25) = ve7400conf.ini|x
+Kill(26) = batbbnp.msk|x
+Kill(27) = batbpro.msk|x
+Kill(28) = bastctr.rep|x
+Kill(29) = basteld.msk|x
+Kill(30) = bastimb.msk|x
+Kill(31) = baststd.msk|x
+Kill(32) = batbgcg.msk|x
+Kill(33) = bastprs.msk|x
+Kill(34) = basttag.msk|x
+Kill(35) = basttri.msk|x
+Kill(36) = bastgmc.msk|x
+Kill(37) = eftbbnp.msk|x
+Kill(38) = bastfrd.rep|x
+Kill(39) = batbrfa.msk|x
+Kill(40) = ve7100a.msk|x
+Kill(41) = batbnum.msk|x
+Kill(42) = bastcau.msk|x
+Kill(43) = batbfrm.msk|x
+Kill(44) = bastabe.msk|x
+Kill(45) = ve7400a.ini|x
+Kill(46) = bastcau.rep|x
+Kill(47) = bastcaa.msk|x
+Kill(48) = bastcra.msk|x
+Kill(49) = batbgmc.msk|x
+Kill(50) = bastnum.msk|x
+Kill(51) = batbubi.msk|x
+Kill(52) = batbspt.msk|x
+Kill(53) = batbprv.msk|x
+Kill(54) = batbcau.msk|x
+Kill(55) = ve7700a.msk|x
+Kill(56) = bastfrr.msk|x
+Kill(57) = ve7.exe|x
+Kill(58) = batbrfc.msk|x
+Kill(59) = bastgcg.msk|x
+Kill(60) = batbasf.msk|x
+Kill(61) = bastgca.rep|x
+Kill(62) = bastctr.msk|x
+Kill(63) = bastimb.rep|x
+Kill(64) = batbfsa.msk|x
+Kill(65) = bastprs.rep|x
+Kill(66) = ve7400a.msk|x
+Kill(67) = batbgsa.msk|x
+Kill(68) = bastrfc.rep|x
+Kill(69) = bastasf.rep|x
+Kill(70) = basttip.rep|x
+Kill(71) = batbfrd.msk|x
+Kill(72) = bastnum.rep|x
+Kill(73) = bastfrm.msk|x
+Kill(74) = bastgca.msk|x
+Kill(75) = ve7500a.msk|x
+Kill(76) = batbstd.msk|x
+Kill(77) = batbspp.msk|x
+Kill(78) = baststd.rep|x
+Kill(79) = batbfca.msk|x
+Kill(80) = bastubi.rep|x
+Kill(81) = bastubi.msk|x
+Kill(82) = batbabe.msk|x
+Kill(83) = batbums.msk|x
+Kill(84) = batbtri.msk|x
+Kill(85) = efstbnp.rep|x
+Kill(86) = batbtag.msk|x
+Kill(87) = bastfca.rep|x
+Kill(88) = bastums.msk|x
+Kill(89) = batbprs.msk|x
+Kill(90) = ve7701a.ini|x
+Kill(91) = bastcra.rep|x
+Kill(92) = bastfrm.rep|x
+Kill(93) = batbfid.msk|x
+Kill(94) = ve7300a.frm|x
+Kill(95) = bastgmc.rep|x
+Kill(96) = batbcra.msk|x
+Kill(97) = ve7200a.msk|x
+Kill(98) = batbacr.msk|x
+Kill(99) = batbimb.msk|x
+Kill(100) = bastasf.msk|x
+Kill(101) = bastrfc.msk|x
+Kill(102) = batbeld.msk|x
+Kill(103) = bastfrr.rep|x
+Kill(104) = efstbnp.msk|x
+Kill(105) = batbfrr.msk|x
+
+[cg9]
+File(213) = cg0700a.msk|X
+Patch = 1388
+Versione = 21511200
+
+[ve]
+Data = 05-02-2025
+Descrizione = Vendite
+Dischi = 1
+Moduli = ba,cg9,pr9,mg9,sv9,in9,ef9
+OEM =
+Patch = 1388
+PostProcess = bainst -0 VE
+PreProcess =
+Prezzo(1) =
+Prezzo(2) =
+Versione = 21511200
+
diff --git a/cd/test/ve1388a1.zip b/cd/test/ve1388a1.zip
new file mode 100644
index 000000000..2ef200a8b
Binary files /dev/null and b/cd/test/ve1388a1.zip differ
diff --git a/src/include/reputils.h b/src/include/reputils.h
index 6f884a776..69943d7a2 100755
--- a/src/include/reputils.h
+++ b/src/include/reputils.h
@@ -53,6 +53,7 @@ public:
size_t warnings() const { return _war; }
size_t errors() const { return _err; }
size_t rows() const { return messages() + warnings() + errors(); }
+ bool full() const { return rows() > 0; }
TLog_report(const char* title = "", const char* name = "bagn010a");
};