Index: trunk/Mars/msql/MSQLServer.cc
===================================================================
--- trunk/Mars/msql/MSQLServer.cc	(revision 15439)
+++ trunk/Mars/msql/MSQLServer.cc	(revision 15440)
@@ -447,6 +447,5 @@
         if (TestBit(kIsOwner))
         {
-            if (fTree)
-                delete fTree;
+            fTrees.Delete();
 
             delete fServ;
@@ -626,5 +625,4 @@
         fType = kIsZombie;
 
-    fTree = 0;
     fList.SetOwner();
 }
@@ -720,5 +718,4 @@
 {
     fServ = serv.fServ;
-    fTree = 0;
 
     fDataBase = serv.fDataBase;
@@ -881,13 +878,21 @@
 }
 
-MTreeSQL *MSQLServer::GetTree(const char *table, const char *addon)
+MTreeSQL *MSQLServer::GetTree(TString table, TString addon)
 {
     if (fType!=kIsServer || !fServ || !TestBit(kIsOwner))
         return 0;
 
-    if (!fTree)
-        fTree = new MTreeSQL(this, table, addon);
-
-    return fTree;
+    TIter Next(&fTrees);
+    TObject *o = 0;
+    while ((o=Next()))
+    {
+        if (o->GetName()==table && o->GetName()==addon)
+            return (MTreeSQL*)o;
+    }
+
+    MTreeSQL *t = new MTreeSQL(this, table, addon);
+    fTrees.Add(t);
+
+    return t;
 }
 
Index: trunk/Mars/msql/MSQLServer.h
===================================================================
--- trunk/Mars/msql/MSQLServer.h	(revision 15439)
+++ trunk/Mars/msql/MSQLServer.h	(revision 15440)
@@ -18,5 +18,5 @@
 private:
     TSQLServer *fServ;
-    MTreeSQL   *fTree;
+    TList fTrees;
 
     TString fDataBase;
@@ -69,5 +69,5 @@
 public:
     MSQLServer(TSQLServer *serv, const char *dbname=0, const char *tname=0, const char *col=0)
-        : fServ(serv), fTree(0), fDataBase(dbname), fTable(tname), fColumn(col), fType(kIsZombie)
+        : fServ(serv), fDataBase(dbname), fTable(tname), fColumn(col), fType(kIsZombie)
     {
         fList.SetOwner();
@@ -131,5 +131,5 @@
     void RecursiveRemove(TObject *obj);
 
-    MTreeSQL   *GetTree(const char *table, const char *addon=0);
+    MTreeSQL   *GetTree(TString table, TString addon="");
 
     ClassDef(MSQLServer, 0) // An enhancement of TSQLServer
Index: trunk/Mars/msql/MTreeSQL.cc
===================================================================
--- trunk/Mars/msql/MTreeSQL.cc	(revision 15439)
+++ trunk/Mars/msql/MTreeSQL.cc	(revision 15440)
@@ -46,6 +46,5 @@
 //______________________________________________________________________________
 MTreeSQL::MTreeSQL(MSQLServer *server, const TString& table, const TString &addon) :
-    TTree(table.Data(), "Database read from table: " + table, 0),
-    fServer(server), fQuery(table+" "+addon), fResult(0), fRow(0)
+    TTree(table, addon, 0), fServer(server), fQuery(table+" "+addon), fResult(0), fRow(0)
 {
     fEntries = 0;
