}
       }
 
-
+       
     // Create the attributes table for Root (i.e. Tree)
     LevelDescriptor::AttributeDescriptorListType::const_iterator a;
     for (a = GetTree().GetAttributeDescriptorList(0).begin();
 
   //========================================================================
   /// 
-  std::string& SQLformat(std::string& str)
+  void SQLformat(std::string i_str, std::string &o_str)
   {
-    // quote must be doubled
-    boost::algorithm::replace_all(str,"'","''");
-    // Found strange strings which contained NULL char INSIDE string 
-    int i,size=str.size();
-    for (i=0;i<size;++i) 
-      {
-       if (str[i]==0) 
-         {
-           str = str.substr(0,i);
-           break;
-         }
-      }
-    //    if (i<str.size())
-    return str;
+               // quote must be doubled
+               boost::algorithm::replace_all(i_str,"'","''");
+               // Found strange strings which contained NULL char INSIDE string 
+               int i,size=i_str.size();
+               for (i=0;i<size;++i) 
+               {
+                       if (i_str[i]==0) 
+                       {
+                               i_str = i_str.substr(0,i);
+                               break;
+                         }
+               }
+               o_str = i_str;
   }
   //========================================================================
   
     GimmickMessage(4,"SQLAppendAttributesValues"<<std::endl);
     std::string atts="";
     std::string values="";
+       std::string out ="";
     tree::Node::AttributeMapType::iterator i;
     for (i =  n->GetAttributeMap().begin();
         i != n->GetAttributeMap().end();
          }
 
        atts += "'" + i->first + "'";
-       values += "'" + SQLformat(i->second) + "'"; 
+       SQLformat(i->second, out);
+       values += "'" + out + "'"; 
        atts += ",";
        values += ",";
        GimmickMessage(4,"'"<<i->first<<"' = '"<<i->second<<"'"<<std::endl);