function buildMessages($xml = "")
{
    global $RESPONSE, $INTERNAL, $GROUPS;
    $permission = $INTERNAL[CALLER_SYSTEM_ID]->GetPermission(PERMISSION_MESSAGES);
    if ($_POST[POST_INTERN_XMLCLIP_MESSAGES_END_TIME] == XML_CLIP_NULL) {
        $_POST[POST_INTERN_XMLCLIP_MESSAGES_END_TIME] = 0;
    }
    $result = queryDB(true, "SELECT * FROM `" . DB_PREFIX . DATABASE_TICKETS . "` INNER JOIN `" . DB_PREFIX . DATABASE_TICKET_MESSAGES . "` ON `" . DB_PREFIX . DATABASE_TICKETS . "`.`id`=`" . DB_PREFIX . DATABASE_TICKET_MESSAGES . "`.`ticket_id` WHERE time >" . mysql_real_escape_string($_POST[POST_INTERN_XMLCLIP_MESSAGES_END_TIME]) . " ORDER BY `time` ASC LIMIT " . mysql_real_escape_string(DATA_ITEM_LOADS) . ";");
    if ($result) {
        while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
            $ticket = new UserTicket($row);
            $xml .= $ticket->GetXML($GROUPS, in_array($ticket->Group, $INTERNAL[CALLER_SYSTEM_ID]->Groups) && $permission != PERMISSION_NONE || $permission == PERMISSION_FULL);
        }
    }
    $result = queryDB(true, "SELECT * FROM `" . DB_PREFIX . DATABASE_TICKET_EDITORS . "` WHERE time >" . mysql_real_escape_string($_POST[POST_INTERN_XMLCLIP_MESSAGES_END_TIME]) . " ORDER BY `time` ASC LIMIT " . mysql_real_escape_string(DATA_ITEM_LOADS) . ";");
    if ($result) {
        while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
            $ticket = new ClosedTicket($row["ticket_id"], $row);
            $xml .= $ticket->GetXML($row["time"], $row["status"]);
        }
    }
    $RESPONSE->Messages = $xml;
}