diff --git a/lib/json/group_section.py b/lib/json/group_section.py
index 155b9031edcff3fe67f69e62f65b56c4670c70ff..855170ca2b2d7cab29aff92be88d543e77c437a4 100644
--- a/lib/json/group_section.py
+++ b/lib/json/group_section.py
@@ -51,8 +51,11 @@ def write_groupmembers_subsection (db, xml, group_guid):
         
         prefix='profile/'
         user_attr=wrt.urlparticipa(prefix,user_username)
-        wrt.write_tag(xml,4,"uid",user_attr,",")
-        wrt.write_tag(xml,4,"usuario",user_name,"")
+        
+        wrt.write_open_tag(xml,4,"usuario","{")
+        wrt.write_tag(xml,5,"uid",user_attr,",")
+        wrt.write_tag(xml,5,"nome",wrt.substbadc(user_name),"")
+        wrt.write_close_tag(xml,4,"}",False)
         
         wrt.write_close_tag(xml,3,"}",(row < group_members.rowcount))
         
@@ -71,7 +74,7 @@ def write_groupfiles_subsection (db, xml, group_guid):
     # 50 = select * from elgg_metastrings where string='file_enable';
     perm=wrt.postcontent_permission(db, group_guid, 50)
     
-    wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",")
+    wrt.write_tag(xml,2,"habilitado",perm,",")
     wrt.write_open_tag(xml,2,"arquivos","[")
     
     row=0
@@ -93,12 +96,15 @@ def write_groupfiles_subsection (db, xml, group_guid):
         prefix='profile/'
         owner_attr=wrt.urlparticipa(prefix,owner_username)
         
-        wrt.write_tag(xml,4,"uid",owner_attr,",")
-        wrt.write_tag(xml,4,"autor",owner_name,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_open_tag(xml,4,"autor","{")
+        wrt.write_tag(xml,5,"uid",owner_attr,",")
+        wrt.write_tag(xml,5,"nome",wrt.substbadc(owner_name),"")
+        wrt.write_close_tag(xml,4,"}",True)
+        
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
         wrt.write_tag(xml,4,"link",file_link,",")
-        wrt.write_tag(xml,4,"descricao",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"descricao",wrt.encb64(post_desc),",")
                     
         wrt.write_comments(db,xml,post_guid)
         
@@ -119,7 +125,7 @@ def write_groupforumtopics_subsection (db, xml, group_guid):
     # 52 = select * from elgg_metastrings where string='forum_enable';
     perm=wrt.postcontent_permission(db, group_guid, 52)
     
-    wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",")
+    wrt.write_tag(xml,2,"habilitado",perm,",")
     wrt.write_open_tag(xml,2,"debates","[")
     
     row=0
@@ -138,11 +144,14 @@ def write_groupforumtopics_subsection (db, xml, group_guid):
         prefix='profile/'
         owner_attr=wrt.urlparticipa(prefix,owner_username)
         
-        wrt.write_tag(xml,4,"uid",owner_attr,",")
-        wrt.write_tag(xml,4,"autor",owner_name,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_open_tag(xml,4,"autor","{")
+        wrt.write_tag(xml,5,"uid",owner_attr,",")
+        wrt.write_tag(xml,5,"nome",wrt.substbadc(owner_name),"")
+        wrt.write_close_tag(xml,4,"}",True)
+        
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
-        wrt.write_tag(xml,4,"texto",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"texto",wrt.encb64(post_desc),",")
             
         wrt.write_comments(db,xml,post_guid)
         
@@ -163,7 +172,7 @@ def write_groupbookmarks_subsection (db, xml, group_guid):
     # 49 = select * from elgg_metastrings where string='bookmarks_enable';
     perm=wrt.postcontent_permission(db, group_guid, 49)
     
-    wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",")
+    wrt.write_tag(xml,2,"habilitado",perm,",")
     wrt.write_open_tag(xml,2,"favoritos","[")
     
     row=0
@@ -185,12 +194,15 @@ def write_groupbookmarks_subsection (db, xml, group_guid):
         prefix='profile/'
         owner_attr=wrt.urlparticipa(prefix,owner_username)
         
-        wrt.write_tag(xml,4,"uid",owner_attr,",")
-        wrt.write_tag(xml,4,"autor",owner_name,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_open_tag(xml,4,"autor","{")
+        wrt.write_tag(xml,5,"uid",owner_attr,",")
+        wrt.write_tag(xml,5,"nome",wrt.substbadc(owner_name),"")
+        wrt.write_close_tag(xml,4,"}",True)
+        
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
         wrt.write_tag(xml,4,"link",bookmark_link,",")
-        wrt.write_tag(xml,4,"descricao",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"descricao",wrt.encb64(post_desc),",")
                             
         wrt.write_comments(db,xml,post_guid)
         
@@ -211,7 +223,7 @@ def write_grouppages_subsection (db, xml, group_guid):
     # 53 = select * from elgg_metastrings where string='pages_enable';
     perm=wrt.postcontent_permission(db, group_guid, 53)
     
-    wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",")
+    wrt.write_tag(xml,2,"habilitado",perm,",")
     wrt.write_open_tag(xml,2,"paginas","[")
     
     row=0
@@ -230,11 +242,14 @@ def write_grouppages_subsection (db, xml, group_guid):
         prefix='profile/'
         owner_attr=wrt.urlparticipa(prefix,owner_username)
         
-        wrt.write_tag(xml,4,"uid",owner_attr,",")
-        wrt.write_tag(xml,4,"autor",owner_name,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_open_tag(xml,4,"autor","{")
+        wrt.write_tag(xml,5,"uid",owner_attr,",")
+        wrt.write_tag(xml,5,"nome",wrt.substbadc(owner_name),"")
+        wrt.write_close_tag(xml,4,"}",True)
+        
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
-        wrt.write_tag(xml,4,"texto",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"texto",wrt.encb64(post_desc),",")
                     
         wrt.write_comments(db,xml,post_guid)
         
@@ -255,7 +270,7 @@ def write_groupvideos_subsection (db, xml, group_guid):
     # 399 = select * from elgg_metastrings where string='videos_enable';
     perm=wrt.postcontent_permission(db, group_guid, 399)
     
-    wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",")
+    wrt.write_tag(xml,2,"habilitado",perm,",")
     wrt.write_open_tag(xml,2,"videos","[")
     
     row=0
@@ -277,12 +292,15 @@ def write_groupvideos_subsection (db, xml, group_guid):
         prefix='profile/'
         owner_attr=wrt.urlparticipa(prefix,owner_username)
         
-        wrt.write_tag(xml,4,"uid",owner_attr,",")
-        wrt.write_tag(xml,4,"autor",owner_name,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_open_tag(xml,4,"autor","{")
+        wrt.write_tag(xml,5,"uid",owner_attr,",")
+        wrt.write_tag(xml,5,"nome",wrt.substbadc(owner_name),"")
+        wrt.write_close_tag(xml,4,"}",True)
+        
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
         wrt.write_tag(xml,4,"link",video_link,",")
-        wrt.write_tag(xml,4,"descricao",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"descricao",wrt.encb64(post_desc),",")
             
         wrt.write_comments(db,xml,post_guid)
 
@@ -303,7 +321,7 @@ def write_groupevents_subsection (db, xml, group_guid):
     # 54 = select * from elgg_metastrings where string='event_calendar_enable';
     perm=wrt.postcontent_permission(db, group_guid, 54)
     
-    wrt.write_tag(xml,2,"habilitado",wrt.permstr(perm),",")
+    wrt.write_tag(xml,2,"habilitado",perm,",")
     wrt.write_open_tag(xml,2,"eventos","[")
     
     row=0
@@ -340,17 +358,20 @@ def write_groupevents_subsection (db, xml, group_guid):
         prefix='profile/'
         owner_attr=wrt.urlparticipa(prefix,owner_username)
         
-        wrt.write_tag(xml,4,"uid",owner_attr,",")
-        wrt.write_tag(xml,4,"autor",owner_name,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_open_tag(xml,4,"autor","{")
+        wrt.write_tag(xml,5,"uid",owner_attr,",")
+        wrt.write_tag(xml,5,"nome",wrt.substbadc(owner_name),"")
+        wrt.write_close_tag(xml,4,"}",True)
+        
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
-        wrt.write_tag(xml,4,"organizador",organizer,",")
-        wrt.write_tag(xml,4,"contato",contact,",")
-        wrt.write_tag(xml,4,"endereco",venue,",")
+        wrt.write_tag(xml,4,"organizador",wrt.substbadc(organizer),",")
+        wrt.write_tag(xml,4,"contato",wrt.substbadc(contact),",")
+        wrt.write_tag(xml,4,"endereco",wrt.substbadc(venue),",")
         wrt.write_tag(xml,4,"data_inicio",wrt.datestr(time_start),",")
         wrt.write_tag(xml,4,"data_fim",wrt.datestr(time_end),",")
-        wrt.write_tag(xml,4,"taxa_participacao",fees,",")
-        wrt.write_tag(xml,4,"descricao",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"taxa_participacao",wrt.substbadc(fees),",")
+        wrt.write_tag(xml,4,"descricao",wrt.encb64(post_desc),",")
         
         wrt.write_comments(db,xml,post_guid)
         
@@ -376,6 +397,8 @@ def write_groups_section(db, xml_file):
     for (guid, title, desc, owner_id, owner_name, owner_username, time)\
         in groups_info:
             
+        row=row+1
+            
         # 45 = select * from elgg_metastrings where string='briefdescription';
         brief_desc=wrt.post_content(db,guid, 45)
         
@@ -389,13 +412,22 @@ def write_groups_section(db, xml_file):
         prefix='profile/'
         owner_attr=wrt.urlparticipa(prefix,owner_username)
         
-        wrt.write_tag(xml,2,"uid",owner_attr,",")
-        wrt.write_tag(xml,2,"proprietario",owner_name,",")
-        wrt.write_tag(xml,2,"titulo",title,",")
+        wrt.write_open_tag(xml,2,"proprietario","{")
+        wrt.write_tag(xml,3,"uid",owner_attr,",")
+        wrt.write_tag(xml,3,"nome",wrt.substbadc(owner_name),"")
+        wrt.write_close_tag(xml,2,"}",True)
+                
+        wrt.write_tag(xml,2,"titulo",wrt.substbadc(title),",")
         wrt.write_tag(xml,2,"data",wrt.datestr(time),",")
-        wrt.write_tag(xml,2,"descricao",wrt.replacebadchars(desc),",")
-        wrt.write_tag(xml,2,"breve_descricao",wrt.replacebadchars(brief_desc),",")
-                                    
+        wrt.write_tag(xml,2,"descricao",wrt.encb64(desc),",")
+        
+        if wrt.groupaccess_permission(db, guid) == 'public':
+            comma=","
+        else:
+            comma=""
+            
+        wrt.write_tag(xml,2,"breve_descricao",wrt.encb64(brief_desc),comma)
+                                            
         if wrt.groupaccess_permission(db, guid) == 'public':
             
             # Write a list of group member's name
diff --git a/lib/json/user_section.py b/lib/json/user_section.py
index 93cff6619972c143294b2ee781ad2adb7c5c0fc6..febee145fb5b764dd17bd319a39182770219c455 100644
--- a/lib/json/user_section.py
+++ b/lib/json/user_section.py
@@ -50,7 +50,7 @@ def write_userfriends_subsection (db, xml, user_guid):
         friend_attr=wrt.urlparticipa(prefix,friend_username)
         
         wrt.write_tag(xml,4,"uid",friend_attr,",")
-        wrt.write_tag(xml,4,"usuario",friend_name,"")
+        wrt.write_tag(xml,4,"usuario",wrt.substbadc(friend_name),"")
         
         wrt.write_close_tag(xml,3,"}",(row < friends_info.rowcount))
         
@@ -78,7 +78,7 @@ def write_userowngroup_subsection (db, xml, user_guid):
         group_attr=wrt.urlparticipa(prefix,str(group_id))
         
         wrt.write_tag(xml,5,"cid",group_attr,",")
-        wrt.write_tag(xml,5,"titulo",group_title,"")
+        wrt.write_tag(xml,5,"titulo",wrt.substbadc(group_title),"")
         
         wrt.write_close_tag(xml,4,"}",(row < user_owngroups.rowcount))
         
@@ -106,7 +106,7 @@ def write_usermembergroup_subsection (db, xml, user_guid):
         group_attr=wrt.urlparticipa(prefix,str(group_id))
         
         wrt.write_tag(xml,5,"cid",group_attr,",")
-        wrt.write_tag(xml,5,"titulo",group_title,"")
+        wrt.write_tag(xml,5,"titulo",wrt.substbadc(group_title),"")
         
         wrt.write_close_tag(xml,4,"}",(row < user_membergroups.rowcount))
         
@@ -147,10 +147,10 @@ def write_userfiles_subsection (db, xml, user_guid):
         wrt.write_open_tag(xml,3,"","{")
         
         wrt.write_tag(xml,4,"pid",post_attr,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
         wrt.write_tag(xml,4,"link",file_link,",")
-        wrt.write_tag(xml,4,"descricao",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"descricao",wrt.encb64(post_desc),",")
             
         wrt.write_comments(db,xml,post_guid)
         
@@ -186,10 +186,10 @@ def write_userblogs_subsection (db, xml, user_guid):
         wrt.write_open_tag(xml,3,"","{")
 
         wrt.write_tag(xml,4,"pid",post_attr,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
-        wrt.write_tag(xml,4,"resumo",wrt.replacebadchars(post_excerpt),",")
-        wrt.write_tag(xml,4,"texto",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"resumo",wrt.encb64(post_excerpt),",")
+        wrt.write_tag(xml,4,"texto",wrt.encb64(post_desc),",")
                     
         wrt.write_comments(db,xml,post_guid)
         
@@ -223,10 +223,10 @@ def write_userbookmarks_subsection (db, xml, user_guid):
         wrt.write_open_tag(xml,3,"","{")
     
         wrt.write_tag(xml,4,"pid",post_attr,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
         wrt.write_tag(xml,4,"link",bookmark_link,",")
-        wrt.write_tag(xml,4,"descricao",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"descricao",wrt.encb64(post_desc),",")
                     
         wrt.write_comments(db,xml,post_guid)
         
@@ -258,9 +258,9 @@ def write_userpages_subsection (db, xml, user_guid):
         wrt.write_open_tag(xml,3,"","{")
 
         wrt.write_tag(xml,4,"pid",post_attr,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
-        wrt.write_tag(xml,4,"texto",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"texto",wrt.encb64(post_desc),",")
                     
         wrt.write_comments(db,xml,post_guid)
         
@@ -295,10 +295,10 @@ def write_uservideos_subsection (db, xml, user_guid):
         wrt.write_open_tag(xml,3,"","{")
         
         wrt.write_tag(xml,4,"pid",post_attr,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
         wrt.write_tag(xml,4,"link",video_link,",")
-        wrt.write_tag(xml,4,"descricao",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"descricao",wrt.encb64(post_desc),",")
         
         wrt.write_comments(db,xml,post_guid)
         
@@ -349,15 +349,15 @@ def write_userevents_subsection (db, xml, user_guid):
         wrt.write_open_tag(xml,3,"","{")
         
         wrt.write_tag(xml,4,"pid",post_attr,",")
-        wrt.write_tag(xml,4,"titulo",post_title,",")
+        wrt.write_tag(xml,4,"titulo",wrt.substbadc(post_title),",")
         wrt.write_tag(xml,4,"data",wrt.datestr(time),",")
-        wrt.write_tag(xml,4,"organizador",organizer,",")
-        wrt.write_tag(xml,4,"contato",contact,",")
-        wrt.write_tag(xml,4,"endereco",venue,",")
+        wrt.write_tag(xml,4,"organizador",wrt.substbadc(organizer),",")
+        wrt.write_tag(xml,4,"contato",wrt.substbadc(contact),",")
+        wrt.write_tag(xml,4,"endereco",wrt.substbadc(venue),",")
         wrt.write_tag(xml,4,"data_inicio",wrt.datestr(time_start),",")
         wrt.write_tag(xml,4,"data_fim",wrt.datestr(time_end),",")
-        wrt.write_tag(xml,4,"taxa_participacao",fees,",")
-        wrt.write_tag(xml,4,"descricao",wrt.replacebadchars(post_desc),",")
+        wrt.write_tag(xml,4,"taxa_participacao",wrt.substbadc(fees),",")
+        wrt.write_tag(xml,4,"descricao",wrt.encb64(post_desc),",")
         
         wrt.write_comments(db,xml,post_guid)
             
@@ -392,7 +392,7 @@ def write_users_section (db, xml_file):
         
         # Write all user's information
         wrt.write_tag(xml,2,"uid",user_attr,",")
-        wrt.write_tag(xml,2,"nome",name,",")
+        wrt.write_tag(xml,2,"nome",wrt.substbadc(name),",")
             
         # Write a list of user friend's names
         write_userfriends_subsection(db, xml, guid)
diff --git a/lib/json/write_support_functions.py b/lib/json/write_support_functions.py
index 9e5cb3fe91ea6ca50b8ea680381496bd70faf4e9..1806b30fba878347eb2abdde5d25daed76009ca8 100644
--- a/lib/json/write_support_functions.py
+++ b/lib/json/write_support_functions.py
@@ -24,6 +24,7 @@
 import MySQLdb
 import codecs
 import datetime
+import base64
 
 import queries_definition as qry
 
@@ -51,8 +52,17 @@ def lvl (l):
 #--------------------------------------------------------------------#    
 
 #--------------------------------------------------------------------#    
-def replacebadchars (string):
-    return "xyz"
+def substbadc (string):
+    string = string.replace('\\','\\\\')
+    string = string.replace('"','\\"')
+    string = string.replace('\t',' ')
+    return string
+#--------------------------------------------------------------------#    
+
+#--------------------------------------------------------------------#    
+def encb64 (string):
+    encoded_string = base64.standard_b64encode(string.encode('utf-8'))
+    return encoded_string
 #--------------------------------------------------------------------#    
 
 #--------------------------------------------------------------------#
@@ -204,11 +214,14 @@ def write_comments (db, xml, post_guid):
         
         prefix='profile/'
         user_attr=urlparticipa(prefix,user_username)
+                
+        write_open_tag(xml,6,"usuario","{")
+        write_tag(xml,7,"uid",user_attr,",")
+        write_tag(xml,7,"nome",substbadc(user_name),"")
+        write_close_tag(xml,6,"}",True)
         
-        write_tag(xml,6,"uid",user_attr,",")
-        write_tag(xml,6,"usuario",user_name,",")
         write_tag(xml,6,"data",datestr(time),",")
-        write_tag(xml,6,"mensagem",replacebadchars(string),"")
+        write_tag(xml,6,"mensagem",encb64(string),"")
         
         write_close_tag(xml,5,"}",(row < post_comments.rowcount))