diff --git a/db/db1300.cpp b/db/db1300.cpp
index 9d6874fd0..1c59df576 100755
--- a/db/db1300.cpp
+++ b/db/db1300.cpp
@@ -47,7 +47,7 @@ const TRectype* TXmas_tree::find_child(const TCodice_articolo& art, int child) c
 {                 
   TString80 key; key.format("%s|%d", (const char*)art, child);
   const TRectype& rec = _cache_rdist->get(key);
-  return rec.empty() ? NULL : &rec;  
+  return rec.empty() ? NULL : &rec; 
 } 
 
 bool TXmas_tree::add_head(const TCodice_articolo& art)
@@ -60,6 +60,8 @@ bool TXmas_tree::add_head(const TCodice_articolo& art)
     if (rec.empty())
       rec.put("CODDIST", art);
     const int err = rec.write(*_dist);
+
+		_cache_dist->discard(art);
     added = err == NOERR;
   }
   return added;
@@ -113,6 +115,12 @@ void TXmas_tree::add_branch(TDistinta_tree& dt)
       curr.put("UM", um);
       curr.put("EXPR", qta);
       int err = curr.write(*_rdist);
+
+			TString k;
+
+			k.format("%s|%d", (const char *) art, c);
+			_cache_rdist->discard(k);
+			
       CHECKD(err == NOERR, "Rdist write error ", err);
     }
   }