Index: iris/xmpp-im/types.cpp
===================================================================
--- iris/xmpp-im/types.cpp	(revision 526236)
+++ iris/xmpp-im/types.cpp	(working copy)
@@ -544,7 +544,7 @@
 			else
 				x.appendChild(s.createTextElement("jabber:x:event","id",d->eventId));
 		}
-		else
+		else if (d->type=="chat" || d->type=="groupchat")
 			s.appendChild(  s.createElement(NS_CHATSTATES , "active" ) );
 
 		bool need_x_event=false;
@@ -565,20 +565,20 @@
 				case ComposingEvent: 
 					x.appendChild(s.createElement("jabber:x:event", "composing"));
 					need_x_event=true;
-					if (d->body.isEmpty())
+					if (d->body.isEmpty() && (d->type=="chat" || d->type=="groupchat") )
 						s.appendChild(  s.createElement(NS_CHATSTATES , "composing" ) ); 
 					break;
 				case CancelEvent:
 					need_x_event=true;
-					if (d->body.isEmpty())
+					if (d->body.isEmpty() && (d->type=="chat" || d->type=="groupchat") )
 						s.appendChild(  s.createElement(NS_CHATSTATES , "paused" ) ); 
 					break;
 				case InactiveEvent:
-					if (d->body.isEmpty())
+					if (d->body.isEmpty() && (d->type=="chat" || d->type=="groupchat") )
 						s.appendChild(  s.createElement(NS_CHATSTATES , "inactive" ) ); 
 					break;
 				case GoneEvent:
-					if (d->body.isEmpty())
+					if (d->body.isEmpty() && (d->type=="chat" || d->type=="groupchat") )
 						s.appendChild(  s.createElement(NS_CHATSTATES , "gone" ) ); 
 					break;
 			}
