--- a/opensips-1.6.2-tls/parser/parse_event.c
+++ b/opensips-1.6.2-tls/parser/parse_event.c
@@ -50,6 +50,10 @@
 #define PRES_XCAP_CHANGE_STR "xcap-change"
 #define PRES_XCAP_CHANGE_STR_LEN 11
 
+#define PRES_XCAP_DIFF_STR "xcap-diff"
+#define PRES_XCAP_DIFF_STR_LEN 9
+
+
 #define PRES_SIP_PROFILE_STR "sip-profile"
 #define PRES_SIP_PROFILE_STR_LEN 11
 
@@ -121,7 +125,14 @@ int event_parser(char* _s, int _l, event_t* _e)
 	} else if ((_e->text.len == MWI_STR_LEN) && 
 		   !strncasecmp(MWI_STR, tmp.s, _e->text.len)) {
 		_e->parsed = EVENT_MWI;
-	} else {
+	} 
+
+        else if ((_e->text.len ==  PRES_XCAP_DIFF_STR_LEN) && 
+		   !strncasecmp( PRES_XCAP_DIFF_STR, tmp.s, _e->text.len)) {
+		_e->parsed = EVENT_XCAP_DIFF;
+	} 
+
+        else {
 		_e->parsed = EVENT_OTHER;
 	}
 
--- a/opensips-1.6.2-tls/parser/parse_event.h
+++ b/opensips-1.6.2-tls/parser/parse_event.h
@@ -42,6 +42,7 @@
 #define EVENT_DIALOG         5
 #define EVENT_MWI            6
 #define EVENT_DIALOG_SLA     7
+#define EVENT_XCAP_DIFF      8
 
 typedef struct event {
 	str text;       /* Original string representation */
