Index: /trunk/instant_messenger/xsl/layer.xsl
===================================================================
--- /trunk/instant_messenger/xsl/layer.xsl	(revision 151)
+++ /trunk/instant_messenger/xsl/layer.xsl	(revision 164)
@@ -11,14 +11,12 @@
 				</td>
 				<td style="valign:top">
-					<xsl:value-of select="lang1" /> : 
+					<span style="font-weight:bold;"><xsl:value-of select="lang1" /> : </span> 
 					<br></br>
-					<span id="im_layer_nickname"><xsl:value-of select="nickname" /></span> 
+					<span id="im_layer_nickname"><xsl:value-of select="nickname" /></span>
 					<br></br>
 					<br></br>
-					<span onclick="javascript:templates.add_user();" style="cursor:pointer;"><u><xsl:value-of select="lang2"/></u></span>
-					<br></br>
-					<br></br>					
-					<span onclick="javascript:templates.preferences('span_teste');" style="cursor:pointer;"><u><xsl:value-of select="lang3"/></u></span>
-					<span id="span_teste"></span>
+					<img src="{path}templates/default/images/addBuddy1.gif" style="cursor:pointer;" onclick="javascript:templates.add_user();" title="{lang2}" alt="{lang2}"/>
+					<img src="{path}templates/default/images/console_prefs1.png" style="cursor:pointer;" onclick="javascript:templates.preferences('span_preferences');" title="{lang3}" alt="{lang3}"/>					
+					<span id="span_preferences"></span>
 					<br></br>
 				</td>	
Index: /trunk/instant_messenger/xsl/contacts.xsl
===================================================================
--- /trunk/instant_messenger/xsl/contacts.xsl	(revision 151)
+++ /trunk/instant_messenger/xsl/contacts.xsl	(revision 164)
@@ -13,5 +13,5 @@
 			<xsl:choose>
 				<xsl:when test="not(group = preceding-sibling::item/group)">
-					<img id="group_{group[current()]}" src="/instant_messenger/templates/default/images/group_open.gif" onclick="javascript:im.group_close('{group[current()]}');"/>
+					<img id="group_{group[current()]}" src="instant_messenger/templates/default/images/group_open.gif" onclick="javascript:im.group_close('{group[current()]}');"/>
 					<b><xsl:value-of select="group[current()]" /><br/></b>
 					<xsl:apply-templates select="." mode="contacts"/>
@@ -30,19 +30,19 @@
 		<xsl:when test="@name">
 			<div style="margin-left:15px;cursor:pointer;display:block;" id="{@jid}" idgroup="{group}" idname="{@name}" onmousedown="templates.options(event, '{@jid}');">
-				<img id="img_{@jid}" src="/instant_messenger/templates/default/images/unavailable.gif" style="margin:0px 2px" />
+				<img id="img_{@jid}" src="instant_messenger/templates/default/images/unavailable.gif" style="margin:0px 2px" />
 				<xsl:value-of select="@name"/>
 				<br/>
 				<span id="status_{@jid}" style="font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none" />
 			</div>
-			<div id="sub_{@jid}"></div>							
+			<span id="sub_{@jid}"></span>							
 		</xsl:when>
 		<xsl:otherwise>
 			<div style="margin-left:15px;cursor:pointer;display:block;" id="{@jid}" idgroup="{group}" idname="" onmousedown="templates.options(event, '{@jid}');">
-				<img id="img_{@jid}" src="/instant_messenger/templates/default/images/unavailable.gif" style="margin:0px 2px" />
+				<img id="img_{@jid}" src="instant_messenger/templates/default/images/unavailable.gif" style="margin:0px 2px" />
 				<xsl:value-of select="@jid"/>
 				<br/>
 				<span id="status_{@jid}" style="font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;" />
 			</div>
-			<div id="sub_{@jid}"></div>			
+			<span id="sub_{@jid}"></span>			
 		</xsl:otherwise>
 	</xsl:choose>
Index: /trunk/instant_messenger/xsl/chat.xsl
===================================================================
--- /trunk/instant_messenger/xsl/chat.xsl	(revision 161)
+++ /trunk/instant_messenger/xsl/chat.xsl	(revision 164)
@@ -26,7 +26,7 @@
 				<div style="margin:3px 3px;">
 					<div class="history">
-						<div class="avatar" style="margin: 2px;">
-							<img id="{name}_avatar" />
-						</div>
+					<div class="avatar" style="margin: 2px; position: absolute; right: 30px; top: 30px;">
+						<img id="{name}_avatar"/>
+					</div>
 					</div>
 					<div class="toolbar_buttons">
@@ -36,4 +36,5 @@
 						<div id="{name}_button_color" class="button_color" onclick="javascript:im.conf_font('{name}','button_color');"></div>
 						<div id="{name}_button_emoticons" class="button_emoticons" onclick="javascript:im.conf_font('{name}','button_emoticons');"></div>
+						<div id="{name}_button_profile" class="button_profile" onclick="im.request_vcard('{name}','contact');"></div>
 						<div id="{name}_button_dest"></div>						
 					</div>
Index: /trunk/instant_messenger/xsl/disconnected.xsl
===================================================================
--- /trunk/instant_messenger/xsl/disconnected.xsl	(revision 151)
+++ /trunk/instant_messenger/xsl/disconnected.xsl	(revision 164)
@@ -13,5 +13,5 @@
 		<br/>
 		<div style="margin:5px"> 
-			Sua conexão com o
+			Sua conexão com o 
 			<br/>
 			Servidor parou.
@@ -26,5 +26,5 @@
 		<br/>
 		<img src="{path}templates/default/images/available.gif" />
-		<a href="javascript:client();"><font style="font-size:7pt;margin:2px">Reconectar ...</font></a>
+		<a href="javascript:disconnected = false; client();"><font style="font-size:7pt;margin:2px">Reconectar ...</font></a>
 	</div>
 </xsl:template>
Index: /trunk/instant_messenger/xsl/window.xsl
===================================================================
--- /trunk/instant_messenger/xsl/window.xsl	(revision 151)
+++ /trunk/instant_messenger/xsl/window.xsl	(revision 164)
@@ -28,4 +28,5 @@
 		</div>
 		<div id="{name}_window_bottom" class="rodape" dragdrop="false"></div>
+		<div id="im_sub_menu"></div>
 	</div>
 </xsl:template>
Index: /trunk/instant_messenger/inc/im_acl.inc.php
===================================================================
--- /trunk/instant_messenger/inc/im_acl.inc.php	(revision 151)
+++ /trunk/instant_messenger/inc/im_acl.inc.php	(revision 164)
@@ -1,48 +1,57 @@
 <?php
-   for ( $i = 0; $i < sizeof($GLOBALS['phpgw_info']['user']['acl']); $i++ )
-   {
-      if ( $GLOBALS['phpgw_info']['user']['acl'][$i]['appname'] == 'instant_messenger')
-      {
-		   session_start();
-         $webserver_url = $GLOBALS['phpgw_info']['server']['webserver_url'];
-         $webserver_url = ( !empty($webserver_url) ) ? $webserver_url : '/';
-         if ( strrpos($webserver_url, '/') === false || strrpos($webserver_url, '/') != (strlen($webserver_url)-1) )
-				$webserver_url .= '/';
+$size_of_ACL = sizeof($GLOBALS['phpgw_info']['user']['acl']);
 
-         $webserver_url = $webserver_url . 'instant_messenger/';
+for ( $i = 0; $i < $size_of_ACL && $GLOBALS['phpgw_info']['user']['acl'][$i]['appname'] == 'instant_messenger'; $i++ );
 
-			require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/im_sessions.inc.php';
-			require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/load_lang.php';
-			
-			$DOCUMENT_ROOT = PHPGW_SERVER_ROOT .'/instant_messenger/';
-         
-         $js = array(
-							'js/connector.js',
-							'js/xtools.js',
-							'js/jabber.js',
-							'js/client.js',
-							'js/images.js',
-							'js/dragdrop.js',
-							'js/build_win.js',
-							'js/templates.js',
-							'js/fcommon.js',
-							'js/menu_action.js',
-							'js/functions.js',
-							'js/images.js',
-							'js/cookies_im.js',
-							'js/load.js',							
-                    );
+$webserver_url = $GLOBALS['phpgw_info']['server']['webserver_url'];
+$webserver_url = ( !empty($webserver_url) ) ? $webserver_url : '/';
 
-			print '<script type="text/javascript">var path_im = "'.$webserver_url.'";</script>';
-			foreach ( $js as $key => $val )
-				print '<script src="' . $webserver_url . $val . '?' . filemtime($DOCUMENT_ROOT . $val) . '"></script>';
-			
-			print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/window.css">';
-			print	'<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/chat.css">';
-			print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/common.css">';
-			print '<script type="text/javascript">setTimeout("client()",1000);</script>'; 
+if ( strrpos($webserver_url, '/') === false || strrpos($webserver_url, '/') != (strlen($webserver_url)-1) )
+	$webserver_url .= '/';
 
-			session_write_close();
-      }
-   }
+$webserver_url = $webserver_url . 'instant_messenger/';
+
+session_start();
+require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/im_sessions.inc.php';
+require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/load_lang.php';
+$_user     = $_SESSION['phpgw_info']['instant_messenger']['user'];
+$_pass     = $_SESSION['phpgw_info']['instant_messenger']['passwd'];
+$_server   = $_SESSION['phpgw_info']['instant_messenger']['name_jabber'];
+$_port     = $_SESSION['phpgw_info']['instant_messenger']['port_jabber'];
+$_resource = $_SESSION['phpgw_info']['instant_messenger']['resource_jabber'];
+session_write_close();
+
+require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/class.Ujabber.inc.php';
+
+$DOCUMENT_ROOT = PHPGW_SERVER_ROOT .'/instant_messenger/';
+
+$js = array(
+	'js/connector.js',
+	'js/xtools.js',
+	'js/jabber.js',
+	'js/client.js',
+	'js/images.js',
+	'js/dragdrop.js',
+	'js/build_win.js',
+	'js/templates.js',
+	'js/fcommon.js',
+	'js/menu_action.js',
+	'js/functions.js',
+	'js/images.js',
+	'js/cookies_im.js',
+	'js/load.js',
+);
+
+print '<script type="text/javascript">var path_im = "'.$webserver_url.'";</script>';
+
+foreach ( $js as $key => $val )
+	print '<script src="' . $webserver_url . $val . '?' . filemtime($DOCUMENT_ROOT . $val) . '"></script>';
+
+print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/window.css">';
+print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/chat.css">';
+print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/common.css">';
+
+$jabber = new Ujabber;
+$jabber->connect($_user . '@' . $_server . '/' . $_resource . ':' . $_port, $_pass, 'read/write');
+print '<script type="text/javascript">setTimeout("client()",2000);</script>';
 ?>
Index: /trunk/instant_messenger/inc/Jabberd2.abstract.php
===================================================================
--- /trunk/instant_messenger/inc/Jabberd2.abstract.php	(revision 151)
+++ /trunk/instant_messenger/inc/Jabberd2.abstract.php	(revision 164)
@@ -7,10 +7,11 @@
 class Jabberd2 extends Jabber
 {
-	final function connect($pUser = false, $pPassword = false)
+	final function connect($pUser = false, $pPassword = false, $pConnectionType = false)
 	{
 		try
 		{
-			if ( $_connect = parent::connect($pUser, $pPassword) )
-				return $_connect;
+			if ( $pUser && $pPassword && $pConnectionType )
+				if ( $_connect = parent::connect($pUser, $pPassword, $pConnectionType) )
+					return $_connect;
 
 			return false;
@@ -68,10 +69,6 @@
 		else
 		{
-			if($this->writeSocket($this->iq('set', $addid, NULL, NULL, "jabber:iq:roster", $newcontact)))
-			{
+			if ( $this->writeSocket($this->iq('set', $addid, NULL, NULL, "jabber:iq:roster", $newcontact)) )
 				$this->getContacts();
-				if($this->subscription($pContact['jid'],"subscribe"))
-					echo "OK";
-			}
 		}
 	}
@@ -84,15 +81,12 @@
 	final function getVcard($pJid)
 	{
-		if(is_array($pJid))
+		if ( is_array($pJid) )
 		{
-			$jid = (trim($pJid['jid']) == "this") ? $this->_user . '@' . $this->_server : $pJid['jid'];
+			$jid = ( trim($pJid['jid']) == "this" ) ? $this->_user . '@' . $this->_server : $pJid['jid'];
 
 			if ( !$this->connected )
 				echo "disconnected";
 			else
-			{
 				$this->writeSocket($this->iq('get', 'vCard', $jid, NULL, "vcard-temp", "<vCard xmlns='vcard-temp'/>"));
-				echo "OK";
-			}
 		}
 		else
@@ -109,23 +103,17 @@
 			echo "disconnected";
 		else
-		{		
 			$this->writeSocket($this->iq('set', $id, NULL, NULL, "vcard-temp", "<vCard xmlns='vcard-temp'>".$NewVcard['vcard']."</vCard>"));
-			echo "OK";
-		}			
 	}
-	
+
 	final function removeContact($pContact)
 	{
 		$delid  = 'deluser_' . time();
-		if( !$this->connected )
+		if ( !$this->connected )
 			echo "disconnected";
 		else
 		{
-			if($this->writeSocket($this->iq('set',$delid,NULL,NULL,"jabber:iq:roster","<item jid='".$pContact['jid']."' subscription='remove'/>")))
-			{
-				$this->getContacts();
-				if($this->subscription($pContact['jid'],"unsubscribed"))
-					echo "OK";			
-			}
+			if ( $this->writeSocket($this->iq('set',$delid,NULL,NULL,"jabber:iq:roster","<item jid='".$pContact['jid']."' subscription='remove'/>")) )
+				if ( $this->subscription($pContact['jid'],"unsubscribed") )
+					echo "OK";
 		}
 	}
@@ -141,5 +129,5 @@
 		{
 			$this->writeSocket("<presence xmlns='jabber:client' from='".$this->_user."@".$this->_server."' type='".$type."' to='".$jid."'/>");
-			return true;			
+			return true;
 		}
 	}
@@ -147,5 +135,4 @@
 	final function setPresence($pPresence = false)
 	{
-		
 		if ( !$pPresence )
 			$this->presence();
@@ -158,5 +145,4 @@
 
 		$this->presence($type, $to, $show, $status, $priority);
-
 	}
 
Index: /trunk/instant_messenger/inc/im_sessions.inc.php
===================================================================
--- /trunk/instant_messenger/inc/im_sessions.inc.php	(revision 151)
+++ /trunk/instant_messenger/inc/im_sessions.inc.php	(revision 164)
@@ -2,5 +2,5 @@
 
 		$_SESSION['phpgw_info']['instant_messenger']['user']             = $GLOBALS['phpgw_info']['user']['account_lid'];
-		$_SESSION['phpgw_info']['instant_messenger']['user_id']			  = $GLOBALS['phpgw_info']['user']['account_id'];		
+		$_SESSION['phpgw_info']['instant_messenger']['user_id']			 = $GLOBALS['phpgw_info']['user']['account_id'];		
 		$_SESSION['phpgw_info']['instant_messenger']['passwd']           = $GLOBALS['phpgw_info']['user']['passwd'];
 		$_SESSION['phpgw_info']['instant_messenger']['name_jabber']      = $GLOBALS['phpgw_info']['server']['name_jabber'];
Index: /trunk/instant_messenger/inc/class.Ujabber.inc.php
===================================================================
--- /trunk/instant_messenger/inc/class.Ujabber.inc.php	(revision 151)
+++ /trunk/instant_messenger/inc/class.Ujabber.inc.php	(revision 164)
@@ -8,19 +8,17 @@
 	{
 		session_start();
-		
-		$_user     = $_SESSION['phpgw_info']['instant_messenger']['user'];
-		$_pass     = $_SESSION['phpgw_info']['instant_messenger']['passwd'];
-		$_server   = $_SESSION['phpgw_info']['instant_messenger']['name_jabber'];
-		$_port     = $_SESSION['phpgw_info']['instant_messenger']['port_jabber'];
-		$_resource = $_SESSION['phpgw_info']['instant_messenger']['resource_jabber'];
-		
+
+		$this->_user     = $_SESSION['phpgw_info']['instant_messenger']['user'];
+		$this->_pass     = $_SESSION['phpgw_info']['instant_messenger']['passwd'];
+		$this->_server   = $_SESSION['phpgw_info']['instant_messenger']['name_jabber'];
+		$this->_port     = $_SESSION['phpgw_info']['instant_messenger']['port_jabber'];
+		$this->_resource = $_SESSION['phpgw_info']['instant_messenger']['resource_jabber'];
+
 		session_write_close();
 
-		if ( $this->connect($_user . '@' . $_server . '/' . $_resource . ':' . $_port, $_pass) )
+		if ( $this->connect($this->_user . '@' . $this->_server . '/' . $this->_resource . ':' . $this->_port, $this->_pass, 'read/write') )
 			$this->connected = true;
 		else
 			$this->connected = false;
-		
-		
 	}
 
@@ -29,5 +27,5 @@
 		$this->closeSocket();
 	}
-
+	
 	public final function listen()
 	{
@@ -49,16 +47,14 @@
 			$init = time();
 
-			while ( !connection_aborted() && time() - $init < 10 )
+			while ( !connection_aborted() && time() - $init < 30 )
 			{
 				# read from server and write in the client
 				$xml = $this->readSocket();
 				$xml = ( strlen($xml) ) ? $xml : ' ';
-				printf("%s", $xml );
-
+				printf("%s", $xml);
 				ob_flush();
 				flush();
 				usleep(6000);
 			}
-
 			ob_end_flush();
 		}
Index: /trunk/instant_messenger/inc/class.db_im.inc.php
===================================================================
--- /trunk/instant_messenger/inc/class.db_im.inc.php	(revision 151)
+++ /trunk/instant_messenger/inc/class.db_im.inc.php	(revision 164)
@@ -19,4 +19,5 @@
 	function db_im()
 	{
+		
 		session_start();		
 		$this->db_name = $_SESSION['phpgw_info']['instant_messenger']['server']['db_name'];
@@ -27,8 +28,8 @@
 		$this->db_type = $_SESSION['phpgw_info']['instant_messenger']['server']['db_type'];
 		$this->user_id = $_SESSION['phpgw_info']['instant_messenger']['user_id'];
-		
+		session_write_close();
+
 		$this->db = new db();
-		$this->db->connect($this->db_name,$this->db_host,$this->db_port,$this->db_user,$this->db_pass,$this->db_type);
-		session_write_close();		
+		$this->db->connect($this->db_name,$this->db_host,$this->db_port,$this->db_user,$this->db_pass,$this->db_type);		
 	}
 
Index: /trunk/instant_messenger/inc/Jabber.abstract.php
===================================================================
--- /trunk/instant_messenger/inc/Jabber.abstract.php	(revision 151)
+++ /trunk/instant_messenger/inc/Jabber.abstract.php	(revision 164)
@@ -32,5 +32,5 @@
 	const NOTICE  = 'NOTICE';
 
-	private final function _connect( $pUser = false, $pPassword = false )
+	private final function _connect( $pUser = false, $pPassword = false, $pConnectionType = false )
 	{
 		try
@@ -53,7 +53,7 @@
 
 			$return = fread($socket, 4096);
-			#echo __FUNCTION__ . "<br>\n";
-			#var_dump($return);
-			#exit;
+			fwrite($socket, $pConnectionType);
+
+			$return = fread($socket, 4096);
 
 			if ( $return == "new" )
@@ -72,6 +72,4 @@
 			$this->_resource = $RESOURCE;
 
-			#var_dump($return);
-			#exit;
 			return $return;
 		}
@@ -83,10 +81,10 @@
 	}
 
-	protected function connect( $pUser = false, $pPassword = false )
-	{
-		try
-		{
-			$_connect = $this->_connect($pUser, $pPassword);
-			
+	protected function connect($pUser = false, $pPassword = false, $pConnectionType = false)
+	{
+		try
+		{
+			$_connect = $this->_connect($pUser, $pPassword, $pConnectionType);
+
 			if ( !$_connect )
 				throw new Exception('[connect] #0. File: ' . __FILE__ . '  ::  ' . __LINE__);
@@ -275,5 +273,5 @@
 				$xml .= ($pStatus || $pShow || $pPriority) ? "</presence>" : '';
 			}
-			
+
 			if ( $this->write($xml) === false )
 				throw new Exception('[presence] #1 it isn\'t possible send presence for ' . $this->_server . '. File: ' . __FILE__ . '  ::  ' . __LINE__);
Index: /trunk/instant_messenger/js/images.js
===================================================================
--- /trunk/instant_messenger/js/images.js	(revision 151)
+++ /trunk/instant_messenger/js/images.js	(revision 164)
@@ -24,4 +24,7 @@
 	im_photo.src = path_im + 'templates/default/images/photo.png';
 	
+	var im_photo_1 = new Image();
+	im_photo_1.src = path_im + 'templates/default/images/photo_1.png';
+
 	var im_group_open = new Image();
 	im_group_open.src = path_im + 'templates/default/images/group_open.gif';
Index: /trunk/instant_messenger/js/jabber.js
===================================================================
--- /trunk/instant_messenger/js/jabber.js	(revision 157)
+++ /trunk/instant_messenger/js/jabber.js	(revision 164)
@@ -44,14 +44,15 @@
 		{
 			var XmlDoc = "<layer>" +
-							"<lang1>" + im.get_lang("Nickname") +"</lang1>" +
+							"<lang1>" + im.get_lang("Nickname") + "</lang1>" +
 							"<lang2>" + im.get_lang("Add Contact") + "</lang2>" +
 							"<lang3>" + im.get_lang("Preferences") + "</lang3>" +
-							"<nickname>" + im.get_lang("Username") +"</nickname>" +
-							"<path>"+path_im+"</path>" +
+							"<nickname>" + im.get_lang("Username") + "</nickname>" +
+							"<path>" + path_im + "</path>" +
 						 "</layer>";
+
 			im_window.load('_contacts_im_','instant_messenger_content','<title>.::Expresso Messenger::.</title>','window.xsl','',true,true,false);
 			im_window.elementC('_contacts_im_').innerHTML  = _this.xtools.parse(XmlDoc,'layer.xsl');
 			im_window.elementC('_contacts_im_').innerHTML += _this.xtools.parse(pContacts, 'contacts.xsl');
-			
+						
 			var element = func.byId('im_contact_list').firstChild;
 
@@ -67,11 +68,9 @@
 			}
 			
-			if(im.nickname == null)
-			{
-				im.request_vcard('this','layer');
+			if(func.byId('im_avatar').src === im_photo.src)
+			{			
+				im.request_vcard('this',false);
 				im.ldap_photo('im_avatar');
 			}
-			else
-				func.byId('im_layer_nickname').innerHTML = im.nickname;
 		}
 
@@ -81,5 +80,8 @@
 			{
 				case 'contacts' : readContacts(pIq); break;
-				case 'vCard' : readVcard(pIq); break;
+				case 'vCard' : 
+				case 'vCard_user' : 
+					readVcard(pIq); 
+					break;
 			}
 		}
@@ -93,12 +95,13 @@
 				from = from.substr(0,from.indexOf('/'));
 
+				if(func.byId('iframe_' + from) != null)
+					func.byId('iframe_' + from).parentNode.removeChild(func.byId('iframe_' + from));
+
 				var win;
-				if ( !(win = im_window.elementC(from)) )
-				{
-					im_window.load(from, 'instant_messenger_content', '<title>.:: Expresso Messenger ::.</title>', 'chat.xsl', '310', true, true, true);
-					func.byId(from + '_avatar').src = path_im + "/templates/default/images/photo.png";
-
+
+				function include_iframe()
+				{
 					win = im_window.elementC(from);
-
+					
 					var iframe = document.createElement('iframe');
 					iframe.id = 'iframe_' + from;
@@ -108,13 +111,13 @@
 					iframe.style.margin = '0';
 					iframe.style.padding = '0'
-
+					
 					var _messages_ = win.firstChild.firstChild.nextSibling.nextSibling;
 					_messages_.appendChild(iframe);
-
+					
 					iframe.contentWindow.document.write('<html><body id="' + from + '" style="margin:0px;padding:0px"></body></html>');
 					iframe.contentWindow.document.close();
 					iframe.contentWindow.document.designMode = "On";
 					iframe.contentWindow.focus();
-
+				
 					function keypress_handler(e)
 					{
@@ -163,11 +166,24 @@
 						obj.attachEvent('onkeyup', keyup_handler);
 					}
-				}else
+				}				
+
+				if ( !(win = im_window.elementC(from)) )
+				{
+					im_window.load(from, 'instant_messenger_content', '<title>.:: Expresso Messenger ::.</title>', 'chat.xsl', '310', true, true, true);
+					//im_window.visible(from,'block');
+					func.byId(from + '_avatar').src = path_im + "/templates/default/images/photo.png";
+					include_iframe();
+				}
+				else
+				{
 					im_window.load(from, '', '', '', '', true, true, true);
+					//im_window.visible(from,'block');
+					include_iframe();
+				}
 
 				if ( win )
 				{
 					if(!(im.nickname_contacts[from]))
-						im.request_vcard(from,'nickname');
+						im.request_vcard(from, false);
 
 					win = win.firstChild.firstChild;
@@ -183,71 +199,92 @@
 		function readPresence(pPresence)
 		{
-			var jidFrom = pPresence.getAttribute('from');
-			jidFrom = jidFrom.substr(0,jidFrom.indexOf('/'));
-
-			if(pPresence.getAttribute('type'))
-			{
-				switch(pPresence.getAttribute('type'))
-				{
-					case 'subscribe' :
-							if(!func.byId(pPresence.getAttribute('from')))
+			//@TODO: presenca antes da lista ocasiona erros
+			//verificar e retirar o controle de erros abaixo
+			try
+			{
+				var jidFrom = pPresence.getAttribute('from');
+				jidFrom = jidFrom.substr(0,jidFrom.indexOf('/'));
+	
+				if(pPresence.getAttribute('type'))
+				{
+					switch(pPresence.getAttribute('type'))
+					{
+						case 'subscribe' :
+								if(func.byId(pPresence.getAttribute('from')))
+								{
+									if(confirm('Autorizar o usuário ' + pPresence.getAttribute('from') + '?'))
+										im.subscription(pPresence.getAttribute('from'),'subscribed');
+									else
+										im.subscription(pPresence.getAttribute('from'),'unsubscribe');
+								}
+								else
+								{
+									if(!func.byId(pPresence.getAttribute('from')))
+									{
+										if(confirm('O usuário ' + pPresence.getAttribute('from') + ' quer adicioná-lo ?'))
+										{
+											im.addrequest(pPresence.getAttribute('from'));
+											im.subscription(pPresence.getAttribute('from'),'subscribed');
+										}
+										else
+											im.subscription(pPresence.getAttribute('from'),'unsubscribe');
+									}else
+										im.subscription(pPresence.getAttribute('from'),pPresence.getAttribute('type'));
+								}
+								break;
+						case 'subscribed' :
+								im.subscription(pPresence.getAttribute('from'),pPresence.getAttribute('type'));
+								break;
+						case 'unsubscribed' :						
+								//alert('O usuário ' + pPresence.getAttribute('from') + ' não quer mais papo !');
+								break;
+						case 'unsubscribe' :				
+								alert('O usuário ' + pPresence.getAttribute('from') + ' negou seu pedido !');
+								break;
+						case 'unavailable' :
+								func.byId('img_' + jidFrom).src = eval('im_' + pPresence.getAttribute('type') + '.src');
+								func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:none;");							
+								break;
+						case 'available' :
+								func.byId('img_' + jidFrom).src = eval('im_' + pPresence.getAttribute('type') + '.src');
+								func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:block;");														
+								break;
+					}
+				}
+				else
+				{
+					var node = pPresence.firstChild;
+					while( node )
+					{
+						if(node.hasChildNodes())
+						{						
+							switch(node.nodeName)
 							{
-								if(confirm('O usuario ' + pPresence.getAttribute('from') + ' quer adicioná-lo ?'))
-									im.addrequest(pPresence.getAttribute('from'));
-								else
-									im.subscription(pPresence.getAttribute('from'),'unsubscribe');
-							}else
-								im.subscription(pPresence.getAttribute('from'),pPresence.getAttribute('type'));
-							break;
-					case 'subscribed' :
-							im.subscription(pPresence.getAttribute('from'),pPresence.getAttribute('type'));
-							break;
-					case 'unsubscribed' :						
-							//alert('O usuário ' + pPresence.getAttribute('from') + ' não quer mais papo !');
-							break;
-					case 'unsubscribe' :				
-							alert('O usuário ' + pPresence.getAttribute('from') + ' negou seu pedido !');
-							break;
-					case 'unavailable' :
-							func.byId('img_' + jidFrom).src = eval('im_' + pPresence.getAttribute('type') + '.src');
-							func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:none;");							
-							break;
-					case 'available' :
-							func.byId('img_' + jidFrom).src = eval('im_' + pPresence.getAttribute('type') + '.src');
-							break;
-				}
-			}
-			else
-			{
-				var node = pPresence.firstChild;
-				while( node )
-				{
-					if(node.hasChildNodes())
-					{						
-						switch(node.nodeName)
-						{
-							case "show" : 					
-									func.byId('img_' + jidFrom).src = eval('im_' + node.firstChild.nodeValue + '.src');
-									func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:block;");							
-									func.byId('status_' + jidFrom).innerHTML = " ";
-									func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;");
-									break;
-							case "status" :	
-									func.byId('status_' + jidFrom).innerHTML = ( node.firstChild.nodeValue ) ? node.firstChild.nodeValue : "" ;
-									func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:block;");
-									break;
-							default :
-									func.byId('img_' + jidFrom).src = im_available.src;									
-									func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:block;");							
-									func.byId('status_' + jidFrom).innerHTML = " ";
-									func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;");
-									break;
+								case "show" : 					
+										func.byId('img_' + jidFrom).src = eval('im_' + node.firstChild.nodeValue + '.src');
+										func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:block;");							
+										func.byId('status_' + jidFrom).innerHTML = " ";
+										func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;");
+										break;
+								case "status" :	
+										func.byId('status_' + jidFrom).innerHTML = ( node.firstChild.nodeValue ) ? node.firstChild.nodeValue : "" ;
+										func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:block;");
+										break;
+								default :
+										func.byId('img_' + jidFrom).src = im_available.src;									
+										func.byId('status_' + jidFrom).innerHTML = " ";
+										func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;");
+										break;
+							}
 						}
-					}
-					node = node.nextSibling;					
-				}
-
-				/*if(!im.contacts_off_line)
-					setTimeout("im.off_line('none')",2000);*/
+						node = node.nextSibling;					
+					}
+	
+					if(!im.contacts_off_line)
+						setTimeout("im.off_line()",3000);
+				}
+			}
+			catch(e)
+			{
 			}
 		}
@@ -255,39 +292,29 @@
 		function readVcard(pVcard)
 		{
-			switch(im.vcard)
-			{
-				case "layer" :
+			switch(pVcard.getAttribute('id'))
+			{
+				case "vCard_user" :
+
 					var vcard = pVcard.firstChild;
 					var cc = vcard.firstChild;
-					
 					while( cc )
 					{
 						if(cc.nodeName == "NICKNAME" || cc.nodeName == "nickname")
 						{
-							func.byId('im_layer_nickname').innerHTML = cc.firstChild.nodeValue;
-							im.nickname = " ";
 							if(cc.firstChild.nodeValue)
-								im.nickname = cc.firstChild.nodeValue;
+								func.byId('im_layer_nickname').innerHTML = cc.firstChild.nodeValue;								
 						}
-
 						cc = cc.nextSibling;
 					}
-
+					if( im.vcard )
+						templates.vcard_user(pVcard);
 					break;
 
-				case "user"	:
-					templates.vcard_user(pVcard);
-					im.vcard = "layer";					
-					break;
-
-				case "contact" :
-					templates.vcard_contact(pVcard);
-					im.vcard = "layer";					
-					break;
-					
-				case "nickname" :
+				case "vCard" :
+
 					var vcard = _this.xtools.parse(pVcard,'nickname.xsl'); 
-					im.vcard = "layer";	
-					im.nickname_contacts[vcard.substr(0,vcard.indexOf(','))] = vcard.substr(vcard.indexOf(',')+1);
+					im.nickname_contacts[vcard.substr(0,vcard.indexOf(','))] = ( vcard.substr(vcard.indexOf(',')+1) ) ? vcard.substr(vcard.indexOf(',')+1) : vcard.substr(0,vcard.indexOf(',')) ;
+					if( im.vcard )
+						templates.vcard_contact(pVcard);
 					break;
 			}
Index: /trunk/instant_messenger/js/client.js
===================================================================
--- /trunk/instant_messenger/js/client.js	(revision 151)
+++ /trunk/instant_messenger/js/client.js	(revision 164)
@@ -1,3 +1,5 @@
 var con = new Connector;
+var disconnected = false;
+
 function client()
 {
@@ -5,5 +7,5 @@
 	var buffer = '';
 	var xtools = new XTools;
-	var disconnected = false;
+
 	function request(data)
 	{
@@ -27,4 +29,8 @@
 			im_window.elementC('_contacts_im_').innerHTML  = xtools.parse(XmlDoc,'disconnected.xsl');
 			func.byId('img_status_im').src = im_unavailable.src;
+			im.status = 'type=unavailable';
+			im.statusFlag = 'unavailable';					
+
+			//im_window.visible('_contacts_im_','block');
 		}
 		else if ( data.lastIndexOf('>') == data.length - 1)
@@ -53,10 +59,14 @@
 
 			var node = xmlDoc.documentElement.firstChild;
+
 			while ( node )
+			{
 				with ( node )
 				{
 					jabber.doIt(nodeName, node);
-					node = nextSibling;
+					//node = nextSibling;
 				}
+				node = node.nextSibling;
+			}
 		}
 		else
Index: /trunk/instant_messenger/js/templates.js
===================================================================
--- /trunk/instant_messenger/js/templates.js	(revision 151)
+++ /trunk/instant_messenger/js/templates.js	(revision 164)
@@ -26,4 +26,5 @@
 		im_window.elementC('add_user_im').innerHTML  = this.xtools.parse(XmlDoc,'add_user.xsl');
 		im.ldap();
+		//im_window.visible('add_user_im','block');
 	},
 
@@ -90,4 +91,5 @@
 		im_window.elementC('my_settings_im').innerHTML = this.xtools.parse(XmlDoc,'mysettings.xsl');
 		im.get_preferences();
+		//im_window.visible('my_settings_im','block');
 	},
 	
@@ -121,10 +123,14 @@
 
 		if(!(im.nickname_contacts[pJid]))
-			im.request_vcard(pJid,'nickname');
+			im.request_vcard(pJid, false);
 
 		if(func.byId('img_' + pJid).src != im_unavailable.src )
 		{
 			im_window.load(pJid, 'instant_messenger_content', '<title>.:: Expresso Messenger ::.</title>', 'chat.xsl','310',true,true,true);
+			//im_window.visible(pJid,'block');			
 			func.byId(pJid + '_avatar').src = path_im + "/templates/default/images/photo.png";
+
+			if(func.byId('iframe_' + pJid) != null)
+				func.byId('iframe_' + pJid).parentNode.removeChild(func.byId('iframe_' + pJid));
 
 			var win = im_window.elementC(pJid);
@@ -204,14 +210,18 @@
 						"<lang2>" + im.get_lang("Group") + "</lang2>" +
 						"<lang3>" + im.get_lang("Remove") + "</lang3>" +
-						"<lang4>(Re)-requisitar Autorização</lang4>" +
+						"<lang4>" + im.get_lang("It requisition permission")+ "</lang4>" +
 						"<lang5>" + im.get_lang("See Info") + "</lang5>" +
 						"<jid>" + pJid + "</jid>" +
 						"<path>" + path_im + "</path>" +		
 					 "</options>";
-		menu_action.menu('sub_' + pJid, this.xtools.parse(XmlDoc,'options.xsl'));
-	    func.byId('sub_' + pJid).style.zIndex = '99999';
-		func.byId('sub_' + pJid).style.left = parseInt(func.byId('sub_' + pJid).style.left) - 5;	    
-	    func.byId('sub_' + pJid).style.position = 'absolute';
-		
+
+		var posX = parseInt(func.byId('sub_' + pJid).offsetLeft) - parseInt(func.byId('sub_' + pJid).parentNode.scrollLeft);
+		var posY = parseInt(func.byId('sub_' + pJid).offsetTop) - parseInt(func.byId('sub_' + pJid).parentNode.scrollTop);
+
+		menu_action.menu('im_sub_menu', this.xtools.parse(XmlDoc,'options.xsl'));
+	    func.byId('im_sub_menu').style.zIndex = '99999';
+		func.byId('im_sub_menu').style.top = posY;
+		func.byId('im_sub_menu').style.left = posX + 20;	    
+	    func.byId('im_sub_menu').style.position = 'absolute';
 	},
 
@@ -224,5 +234,5 @@
 						"<function2>templates.remove_user();</function2>" +
 						"<lang3>" + im.get_lang("Vcard") +"</lang3>" +
-						"<function3>im.request_vcard('this','user')</function3>" +
+						"<function3>im.request_vcard('this',true)</function3>" +
 						"<lang4>" + im.get_lang("Preferences") + "</lang4>" +
 						"<function4>templates.mysettings()</function4>" +
@@ -246,4 +256,5 @@
 		im_window.elementC('remove_user_im').innerHTML = this.xtools.parse(XmlDoc,'remove_user.xsl');
 		im.get_contacts();
+		//im_window.visible('remove_user_im','block');		
 	},
 
@@ -264,4 +275,5 @@
 	"vcard_contact" : function(pXml)	
 	{
+		im.vcard = false;
 		var title = "Informações do Contato - Expresso";
 		var XmlDoc = "<vcard_contact>" + 
@@ -279,8 +291,10 @@
 		im_window.load('vcard_contact_im','instant_messenger_content','<title>.:: ' + title +' ::.</title>','window.xsl','390',true,true,true);
 		im_window.elementC('vcard_contact_im').innerHTML = this.xtools.parse(XmlDoc,'vcard_contacts.xsl');
+		//im_window.visible('vcard_contact_im','block');		
 	},
 
 	"vcard_user" : function(pXml)
 	{
+		im.vcard = false;
 		var title = "Informações Pessoais - Expresso";
 		var XmlDoc = "<vcard_user>" +	
@@ -298,4 +312,5 @@
 		im_window.load('vcard_user_im','instant_messenger_content','<title>.:: ' + title +' ::.</title>','window.xsl','470',true,true,true);
 		im_window.elementC('vcard_user_im').innerHTML = this.xtools.parse(XmlDoc,'vcard_user.xsl');
+		//im_window.visible('vcard_user_im','block');		
 	}
 }
Index: /trunk/instant_messenger/js/load.js
===================================================================
--- /trunk/instant_messenger/js/load.js	(revision 151)
+++ /trunk/instant_messenger/js/load.js	(revision 164)
@@ -17,4 +17,10 @@
 	};
     
+	function load_im_contacts()
+	{
+		im_window.load('_contacts_im_','instant_messenger_content', '<title>Expresso Messenger</title>', 'window.xsl','',true,true,true);
+		//im_window.visible('_contacts_im_','block');
+	}
+	
 	function shortcut_im()
 	{
@@ -22,8 +28,11 @@
 		if((local = func.byId('user_info')) && !(func.byId('instant_messenger_content')))
 		{
-			local.innerHTML = '<img src="' + im_fast_menu.src + '" onclick="javascript:templates.fast_menu();"/>' +
-					  		  '<img id="im_status_src" src="' + im_available.src + '" onclick="javascript:im_window.load(\'_contacts_im_\', \'instant_messenger_content\', \'<title>Expresso Messenger</title>\', \'window.xsl\',\'\',true,true,true);"/>' + 
-							  local.innerHTML + '<div id="instant_messenger_content"><span id="fast_menu_im"/></div>';
+			var local_old = local.innerHTML ;
+			local.innerHTML  = '<img src="' + im_fast_menu.src + '" onclick="javascript:templates.fast_menu();">';
+			local.innerHTML += '<img id="im_status_src" src="' + im_available.src + '" onclick="javascript:load_im_contacts();"/>';
+			local.innerHTML += local_old;
+			local.innerHTML += '<div id="instant_messenger_content"></div><span id="fast_menu_im"/>';
 		}
+
 		// Carregando Preferências do usuário
 		im.get_preferences();
Index: /trunk/instant_messenger/index.php
===================================================================
--- /trunk/instant_messenger/index.php	(revision 151)
+++ /trunk/instant_messenger/index.php	(revision 164)
@@ -30,4 +30,7 @@
 	// Footer
 	$GLOBALS['phpgw']->common->phpgw_footer();
+	
+	if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') )
+		exit;	
 
 ?>
@@ -38,4 +41,5 @@
 		<title>IM</title>
 		<!-- JavaScript -->
+		
 		<script type="text/javascript" src="js/connector.js"></script>
 		<script type="text/javascript" src="js/xtools.js"></script>
Index: /trunk/instant_messenger/templates/default/config.tpl
===================================================================
--- /trunk/instant_messenger/templates/default/config.tpl	(revision 151)
+++ /trunk/instant_messenger/templates/default/config.tpl	(revision 164)
@@ -13,14 +13,14 @@
 
    <tr bgcolor="{row_off}">
-    <td colspan="2">&nbsp;<b>Configuração do Servidor Jabber</b></td>
+    <td colspan="2">&nbsp;<b>ConfiguraÃ§Ã£oo do Servidor Jabber</b></td>
    </tr>
 
    <tr bgcolor="{row_on}">
-    <td>Digite o nome da máquina Servidor Jabber:</td>
+    <td>Digite o nome da mÃ¡quina Servidor Jabber:</td>
     <td><input id="IM_name_jabber" name="newsettings[name_jabber]" value="{value_name_jabber}"></td>
    </tr>
 
    <tr bgcolor="{row_off}">
-    <td>Digite Nome da Conexão:</td>
+    <td>Digite Nome da ConexÃ£o:</td>
     <td><input id="IM_resource_jabber" name="newsettings[resource_jabber]" value="{value_resource_jabber}"></td>
    </tr>
@@ -42,5 +42,5 @@
 
    <tr bgcolor="{row_off}">
-    <td>Usuário Ldap:</td>
+    <td>UsuÃ¡rio Ldap:</td>
     <td><input id="IM_user_ldap_jabber" name="newsettings[user_ldap_jabber]" value="{value_user_ldap_jabber}" size="30"></td>
    </tr>
Index: /trunk/instant_messenger/templates/default/index.tpl
===================================================================
--- /trunk/instant_messenger/templates/default/index.tpl	(revision 151)
+++ /trunk/instant_messenger/templates/default/index.tpl	(revision 164)
@@ -28,5 +28,5 @@
 	<br>
 	( figura 1 )
-    <img src="templates/default/images/lista_contatos.png" width="205" height="233" alt="Im Screenshot" align="left" style="padding-right:4px;"> 
+    <img src="templates/default/images/lista_contatos.png" width="200" height="319" alt="Im Screenshot" align="left" style="padding-right:4px;"> 
 	
     <br clear="all">
@@ -34,10 +34,10 @@
 	<h2><a name="acesso_primeiro">2. Acessando o Expresso Messenger pela Primeira Vez</a></h2>
 	
-	Para o acessar o Expresso Messenger, basta clicar em cima da figura <img src="templates/default/images/available.gif">("bolinha verde"), abrirá uma uma janela igual a figura 2. A lista de contatos aparecerá com a seguinte frase : "Nenhum Contato", até que sejam cadastrados novos contatos. 
+	Para o acessar o Expresso Messenger, basta clicar em cima da figura <img src="templates/default/images/available.gif">("bolinha verde"), abrirá uma uma janela igual a figura 2. A lista de contatos aparecerá com a seguinte frase : "Nenhum Contato", atá que sejam cadastrados novos contatos. 
 
 	<br clear="all">
 	<br>
 	( figura 2 )
-    <img src="templates/default/images/lista_contatos_primeira.png" width="206" height="233" alt="Im Screenshot" align="left" style="padding-right:4px;"> 
+    <img src="templates/default/images/lista_contatos_primeira.png" width="201" height="318" alt="Im Screenshot" align="left" style="padding-right:4px;"> 
     
     <br clear="all">
@@ -48,5 +48,5 @@
       <b>Windows XP/2000/ME/98/95:</b>
 	  <ul>
-	    <li>MS Internet Explorer desde a versão 6.0</li>
+	    <!--li>MS Internet Explorer desde a versão 6.0</li-->
 	    <li>Mozilla Firefox desde a versão 1.5</li>
 	  </ul>
@@ -61,5 +61,5 @@
     <h2><a name="prefe">4. Menu Opções</a></h2>
 	( figura 3 )
-    <img src="templates/default/images/menu_preferencias.png" width="207" height="234" alt="Menu Preferências" align="left">
+    <img src="templates/default/images/menu_preferencias.png" width="201" height="320" alt="Menu Preferências" align="left">
     <br clear="all">
     <br>
@@ -89,6 +89,6 @@
     <br>
 
-	Para adicionar um novo contato ( conforme figura 4.1 ), selecione uma organização e automaticamente carregará os usuários que tem permissão para usar o Mensageiro Instantâneo Expresso. Para escolher
-	seu novo contato basta apenas dar um clique em cima do nome desejado. Logo abaixo, três campos são necessários para adicionar o novo contato, sendo que o campo "Email Expresso" e
+	Para adicinar um novo contato, clique na imagem <img src="templates/default/images/addBuddy1.gif"/>  e abrirá uma janela ( conforme figura 4.1 ) selecione uma organização e automaticamente carregará os usuários que tem permissão para usar o Mensageiro Instantâneo Expresso. 
+	Para escolher seu novo contato basta apenas dar um clique em cima do nome desejado. Logo abaixo, três campos são necessários para adicionar o novo contato, sendo que o campo "Email Expresso" e
 	"Nickname" são preenchidos no momento da escolha do novo contato e o campo grupo terá que ser definido. Tendo os três campos preenchidos basta clicar no Botão Adicionar ( <input type="button" value="Adicionar"> ) .
 
@@ -100,10 +100,10 @@
     <br>
 
-	Para remover um contato da sua lista ( conforme figura 4.2 ), selecione na lista e clique no botao Botão Remover ( <input type="button" value="Remover"> ) .
+	Para remover um contato da sua lista ( conforme figura 4.2 ), selecione na lista e clique no botao Botï¿œo Remover ( <input type="button" value="Remover"> ) .
     
     <h2><a name="menu_right">6. Preferências Avançadas</a></h2>
 	( figura 4.3 )
 	<br/>
-    <img src="templates/default/images/menu_right.png" width="212" height="126" alt="Preferências Avançadas" align="left">
+    <img src="templates/default/images/menu_right.png" width="212" height="126" alt="Preferï¿œncias Avanï¿œadas" align="left">
     <br clear="all"/>
     <br/>
@@ -138,10 +138,11 @@
     <h2><a name="troca_mens">9. Troca de Mensagens</a></h2>
 	( figura 7 )
-    <img src="templates/default/images/troca_mensagem.png" width="319" height="314" alt="Troca de Mensagens" align="left">
+    <img src="templates/default/images/troca_mensagem.png" width="311" height="308" alt="Troca de Mensagens" align="left">
     <br clear="all"/>
     <br/>
 
 	Clicando com o mouse em cima do nome do contato escolhido, abrirá uma janela ( conforme figura 7 ), para a troca de mensagens. Nessa mesma janela existe um menu, o qual é possível
-	configurar o formato da Fonte como : <b>Negrito</b>, <i>Itálico</i> e a cor. Você também pode enviar os Smiles, clicando nessa figura <img src="templates/default/images/emoticonlabel.gif">.
+	configurar o formato da Fonte como : <b>Negrito</b>, <i>Itálico</i> e a cor. Você também pode enviar os Smiles, clicando em <img src="templates/default/images/emoticonlabel.gif">
+	e acessar as informações do contato clicando em <img src="templates/default/images/profileBuddy.gif">.
 
     <h2><a name="troca_status">10. Troca de Status</a></h2>
