diff --git a/libempathy/empathy-tp-call.c b/libempathy/empathy-tp-call.c
index 6d0941c..9d52075 100644
--- a/libempathy/empathy-tp-call.c
+++ b/libempathy/empathy-tp-call.c
@@ -794,3 +794,25 @@ empathy_tp_call_get_connection_manager (EmpathyTpCall *self)
 
   return tp_account_get_connection_manager (account);
 }
+
+gboolean
+empathy_tp_call_has_initial_video (EmpathyTpCall *self)
+{
+  EmpathyTpCallPriv *priv = GET_PRIV (self);
+  GHashTable *props;
+  gboolean initial_video;
+  gboolean valid;
+
+  if (priv->channel == NULL)
+    return FALSE;
+
+  g_object_get (priv->channel, "channel-properties", &props, NULL);
+
+  initial_video = tp_asv_get_boolean (props,
+    TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA ".InitialVideo", &valid);
+  if (!valid)
+    initial_video = FALSE;
+
+  g_hash_table_unref (props);
+  return initial_video;
+}
diff --git a/libempathy/empathy-tp-call.h b/libempathy/empathy-tp-call.h
index 476b10a..c5607d8 100644
--- a/libempathy/empathy-tp-call.h
+++ b/libempathy/empathy-tp-call.h
@@ -90,6 +90,8 @@ gboolean empathy_tp_call_is_sending_video (EmpathyTpCall *call);
 
 const gchar * empathy_tp_call_get_connection_manager (EmpathyTpCall *self);
 
+gboolean empathy_tp_call_has_initial_video (EmpathyTpCall *self);
+
 G_END_DECLS
 
 #endif /* __EMPATHY_TP_CALL_H__ */
diff --git a/src/empathy-event-manager.c b/src/empathy-event-manager.c
index 86956e7..80d3e6d 100644
--- a/src/empathy-event-manager.c
+++ b/src/empathy-event-manager.c
@@ -319,6 +319,8 @@ event_channel_process_voip_func (EventPriv *event)
   GtkWidget *dialog;
   GtkWidget *button;
   GtkWidget *image;
+  EmpathyTpCall *call;
+  gboolean video;
 
   if (event->approval->dialog != NULL)
     {
@@ -326,10 +328,17 @@ event_channel_process_voip_func (EventPriv *event)
       return;
     }
 
+  call = EMPATHY_TP_CALL (empathy_dispatch_operation_get_channel_wrapper (
+        event->approval->operation));
+
+  video = empathy_tp_call_has_initial_video (call);
+
   dialog = gtk_message_dialog_new (NULL, 0,
-      GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _("Incoming call"));
+      GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
+      video ? _("Incoming video call"): _("Incoming call"));
   gtk_message_dialog_format_secondary_text (
-    GTK_MESSAGE_DIALOG (dialog),
+    GTK_MESSAGE_DIALOG (dialog), video ?
+      _("%s is video calling you, do you want to answer?"):
       _("%s is calling you, do you want to answer?"),
       empathy_contact_get_name (event->approval->contact));
 
@@ -451,12 +460,22 @@ event_manager_media_channel_got_contact (EventManagerApproval *approval)
 {
   EmpathyEventManagerPriv *priv = GET_PRIV (approval->manager);
   gchar *header;
+  EmpathyTpCall *call;
+  gboolean video;
+
+  call = EMPATHY_TP_CALL (empathy_dispatch_operation_get_channel_wrapper (
+        approval->operation));
+
+  video = empathy_tp_call_has_initial_video (call);
 
-  header = g_strdup_printf (_("Incoming call from %s"),
+  header = g_strdup_printf (
+    video ? _("Incoming video call from %s") :_("Incoming call from %s"),
     empathy_contact_get_name (approval->contact));
 
   event_manager_add (approval->manager, approval->contact,
-      EMPATHY_EVENT_TYPE_VOIP, EMPATHY_IMAGE_VOIP, header, NULL, approval,
+      EMPATHY_EVENT_TYPE_VOIP,
+      video ? EMPATHY_IMAGE_VIDEO_CALL : EMPATHY_IMAGE_VOIP,
+      header, NULL, approval,
       event_channel_process_voip_func, NULL);
 
   g_free (header);
