diff --git a/configure.ac b/configure.ac
index 2493d4a..2b1e309 100644
--- a/configure.ac
+++ b/configure.ac
@@ -111,6 +111,12 @@ AG_GST_ARG_ENABLE_EXTERNAL
 
 AG_GST_ARG_ENABLE_EXPERIMENTAL
 
+AC_ARG_WITH(pangocairo,
+  AC_HELP_STRING([--with-pangocairo],
+    [use pangocairo instead of pangofreetype in the pango plugin]),
+  PANGO_VARIANT="pangocairo", PANGO_VARIANT="pangoft2")
+AC_SUBST(PANGO_VARIANT)
+
 dnl *** checks for platform ***
 
 dnl * hardware/architecture *
@@ -501,9 +507,14 @@ AG_GST_CHECK_FEATURE(OGG, [Xiph Ogg library], ogg, [
 dnl *** pango ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
 AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
-  AG_GST_PKG_CHECK_MODULES(PANGO, pango pangoft2)
+  AG_GST_PKG_CHECK_MODULES(PANGO, pango $PANGO_VARIANT)
 ])
 
+if test "x$PANGO_VARIANT" = "xpangocairo"; then
+  PANGO_CFLAGS="$PANGO_CFLAGS -DUSE_PANGO_CAIRO"
+  AC_SUBST(PANGO_CFLAGS)
+fi
+
 dnl *** theora ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_THEORA, true)
 AG_GST_CHECK_FEATURE(THEORA, [Xiph Theora video codec], theora, [
diff --git a/ext/pango/gstclockoverlay.c b/ext/pango/gstclockoverlay.c
index f558ec0..307f54b 100644
--- a/ext/pango/gstclockoverlay.c
+++ b/ext/pango/gstclockoverlay.c
@@ -46,7 +46,7 @@
 #include "config.h"
 #endif
 
-#include <gstclockoverlay.h>
+#include "gstclockoverlay.h"
 #include <gst/video/video.h>
 #include <time.h>
 
diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c
index 23ddf3c..f4a858f 100644
--- a/ext/pango/gsttextoverlay.c
+++ b/ext/pango/gsttextoverlay.c
@@ -73,6 +73,8 @@
 #include <config.h>
 #endif
 
+#include <string.h>
+
 #include <gst/video/video.h>
 
 #include "gsttextoverlay.h"
@@ -271,6 +273,10 @@ static void gst_text_overlay_set_property (GObject * object, guint prop_id,
 static void gst_text_overlay_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 
+#ifdef USE_PANGO_CAIRO
+static void free_cairo_context (GstTextOverlay *overlay);
+#endif
+
 GST_BOILERPLATE (GstTextOverlay, gst_text_overlay, GstElement, GST_TYPE_ELEMENT)
 
      static void gst_text_overlay_base_init (gpointer g_class)
@@ -315,7 +321,12 @@ gst_text_overlay_class_init (GstTextOverlayClass * klass)
       GST_DEBUG_FUNCPTR (gst_text_overlay_change_state);
 
   klass->get_text = gst_text_overlay_get_text;
+#ifdef USE_PANGO_CAIRO
+  klass->pango_context =
+    pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (pango_cairo_font_map_get_default ()));
+#else
   klass->pango_context = pango_ft2_get_context (72, 72);
+#endif
 
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TEXT,
       g_param_spec_string ("text", "text",
@@ -415,7 +426,11 @@ gst_text_overlay_finalize (GObject * object)
   GstTextOverlay *overlay = GST_TEXT_OVERLAY (object);
 
   g_free (overlay->default_text);
+#ifdef USE_PANGO_CAIRO
+  free_cairo_context (overlay);
+#else
   g_free (overlay->bitmap.buffer);
+#endif
 
   if (overlay->layout) {
     g_object_unref (overlay->layout);
@@ -492,7 +507,13 @@ gst_text_overlay_init (GstTextOverlay * overlay, GstTextOverlayClass * klass)
       pango_layout_new (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_context);
   pango_layout_set_alignment (overlay->layout,
       (PangoAlignment) overlay->line_align);
+#ifdef USE_PANGO_CAIRO
+  overlay->context = NULL;
+  overlay->surface = NULL;
+  overlay->buffer = NULL;
+#else
   memset (&overlay->bitmap, 0, sizeof (overlay->bitmap));
+#endif
 
   overlay->halign = DEFAULT_PROP_HALIGNMENT;
   overlay->valign = DEFAULT_PROP_VALIGNMENT;
@@ -886,7 +907,8 @@ gst_text_overlay_shade_y (GstTextOverlay * overlay, guchar * dest,
  */
 
 static inline void
-gst_text_overlay_blit_yuv420 (GstTextOverlay * overlay, FT_Bitmap * bitmap,
+gst_text_overlay_blit_yuv420 (GstTextOverlay * overlay,
+    guint8 * buffer, gint width, gint height, gint rowstride,
     guint8 * yuv_pixels, gint x0, gint y0)
 {
   int y;                        /* text bitmap coordinates */
@@ -894,8 +916,8 @@ gst_text_overlay_blit_yuv420 (GstTextOverlay * overlay, FT_Bitmap * bitmap,
   guint8 *y_p, *bitp, *u_p, *v_p;
   int bitmap_x0 = 0;            //x0 < 1 ? -(x0 - 1) : 1;       /* 1 pixel border */
   int bitmap_y0 = y0 < 1 ? -(y0 - 1) : 1;       /* 1 pixel border */
-  int bitmap_width = bitmap->width - bitmap_x0;
-  int bitmap_height = bitmap->rows - bitmap_y0;
+  int bitmap_width = width - bitmap_x0;
+  int bitmap_height = height - bitmap_y0;
   int skip_y, skip_x;
   int y_stride, u_stride, v_stride;
   int u_offset, v_offset;
@@ -931,7 +953,7 @@ gst_text_overlay_blit_yuv420 (GstTextOverlay * overlay, FT_Bitmap * bitmap,
   for (y = bitmap_y0; y < bitmap_y0 + bitmap_height; y++) {
     int n;
 
-    bitp = bitmap->buffer + (y * bitmap->pitch) + bitmap_x0;
+    bitp = buffer + (y * rowstride) + bitmap_x0;
     y_p = yuv_pixels + ((y + y0) * y_stride) + x1;
     for (n = bitmap_width; n > 0; --n) {
       v = *bitp;
@@ -952,7 +974,7 @@ gst_text_overlay_blit_yuv420 (GstTextOverlay * overlay, FT_Bitmap * bitmap,
   for (y = bitmap_y0; y < bitmap_y0 + bitmap_height; y++) {
     int n;
 
-    bitp = bitmap->buffer + (y * bitmap->pitch) + bitmap_x0;
+    bitp = buffer + (y * rowstride) + bitmap_x0;
 
     y_p = yuv_pixels + 0 + ((y0 + y) * y_stride) + x1;
     u_p = yuv_pixels + u_offset + (((y0 + y) / 2) * u_stride) + (x1 / 2);
@@ -982,6 +1004,42 @@ gst_text_overlay_blit_yuv420 (GstTextOverlay * overlay, FT_Bitmap * bitmap,
   }
 }
 
+#ifdef USE_PANGO_CAIRO
+static void
+create_cairo_context (GstTextOverlay *overlay, gint width, gint height)
+{
+    gint rowstride;
+
+    rowstride = cairo_format_stride_for_width (CAIRO_FORMAT_A8, width);
+    overlay->buffer = g_malloc0 (width * rowstride);
+    overlay->surface = cairo_image_surface_create_for_data (overlay->buffer,
+                                                           CAIRO_FORMAT_A8,
+                                                           width,
+                                                           height,
+                                                           rowstride);
+    overlay->context = cairo_create (overlay->surface);
+}
+
+static void
+free_cairo_context (GstTextOverlay *overlay)
+{
+  cairo_destroy(overlay->context);
+  overlay->context = NULL;
+  cairo_surface_destroy (overlay->surface);
+  overlay->surface = NULL;
+  g_free (overlay->buffer);
+  overlay->buffer = NULL;
+}
+
+static void
+gst_text_overlay_resize_bitmap (GstTextOverlay * overlay, gint width, gint height)
+{
+  free_cairo_context(overlay);
+  create_cairo_context(overlay, width, height);
+}
+
+#else
+
 static void
 gst_text_overlay_resize_bitmap (GstTextOverlay * overlay, gint width,
     gint height)
@@ -1010,6 +1068,7 @@ gst_text_overlay_resize_bitmap (GstTextOverlay * overlay, gint width,
   bitmap->width = width;
   bitmap->pitch = pitch;
 }
+#endif
 
 static void
 gst_text_overlay_render_text (GstTextOverlay * overlay,
@@ -1044,7 +1103,12 @@ gst_text_overlay_render_text (GstTextOverlay * overlay,
   pango_layout_get_pixel_extents (overlay->layout, &ink_rect, &logical_rect);
   gst_text_overlay_resize_bitmap (overlay, ink_rect.width,
       ink_rect.height + ink_rect.y);
+#ifdef USE_PANGO_CAIRO
+  cairo_move_to (overlay->context, -ink_rect.x, 0);
+  pango_cairo_show_layout (overlay->context, overlay->layout);
+#else
   pango_ft2_render_layout (&overlay->bitmap, overlay->layout, -ink_rect.x, 0);
+#endif
   overlay->baseline_y = ink_rect.y;
 
   g_free (string);
@@ -1056,6 +1120,19 @@ static GstFlowReturn
 gst_text_overlay_push_frame (GstTextOverlay * overlay, GstBuffer * video_frame)
 {
   gint xpos, ypos;
+  gint buf_width, buf_height, buf_stride;
+  guchar *buffer;
+#ifdef USE_PANGO_CAIRO
+  buf_width = cairo_image_surface_get_width (overlay->surface);
+  buf_height = cairo_image_surface_get_height (overlay->surface);
+  buf_stride = cairo_image_surface_get_stride (overlay->surface);
+  buffer = overlay->buffer;
+#else
+  buf_width = overlay->bitmap.width;
+  buf_height = overlay->bitmap.rows;
+  buf_stride = overlay->bitmap.pitch;
+  buffer = overlay->bitmap.buffer;
+#endif
 
   video_frame = gst_buffer_make_writable (video_frame);
 
@@ -1064,10 +1141,10 @@ gst_text_overlay_push_frame (GstTextOverlay * overlay, GstBuffer * video_frame)
       xpos = overlay->xpad;
       break;
     case GST_TEXT_OVERLAY_HALIGN_CENTER:
-      xpos = (overlay->width - overlay->bitmap.width) / 2;
+      xpos = (overlay->width - buf_width) / 2;
       break;
     case GST_TEXT_OVERLAY_HALIGN_RIGHT:
-      xpos = overlay->width - overlay->bitmap.width - overlay->xpad;
+      xpos = overlay->width - buf_width - overlay->xpad;
       break;
     default:
       xpos = 0;
@@ -1077,10 +1154,10 @@ gst_text_overlay_push_frame (GstTextOverlay * overlay, GstBuffer * video_frame)
 
   switch (overlay->valign) {
     case GST_TEXT_OVERLAY_VALIGN_BOTTOM:
-      ypos = overlay->height - overlay->bitmap.rows - overlay->ypad;
+      ypos = overlay->height - buf_height - overlay->ypad;
       break;
     case GST_TEXT_OVERLAY_VALIGN_BASELINE:
-      ypos = overlay->height - (overlay->bitmap.rows + overlay->ypad);
+      ypos = overlay->height - (buf_height + overlay->ypad);
       break;
     case GST_TEXT_OVERLAY_VALIGN_TOP:
       ypos = overlay->ypad;
@@ -1094,13 +1171,13 @@ gst_text_overlay_push_frame (GstTextOverlay * overlay, GstBuffer * video_frame)
   /* shaded background box */
   if (overlay->want_shading) {
     gst_text_overlay_shade_y (overlay,
-        GST_BUFFER_DATA (video_frame), xpos, xpos + overlay->bitmap.width,
-        ypos, ypos + overlay->bitmap.rows);
+        GST_BUFFER_DATA (video_frame), xpos, xpos + buf_width,
+        ypos, ypos + buf_height);
   }
 
-
-  if (overlay->bitmap.buffer) {
-    gst_text_overlay_blit_yuv420 (overlay, &overlay->bitmap,
+  if (buffer) {
+    gst_text_overlay_blit_yuv420 (overlay, buffer,
+        buf_width, buf_height, buf_stride,
         GST_BUFFER_DATA (video_frame), xpos, ypos);
   }
 
diff --git a/ext/pango/gsttextoverlay.h b/ext/pango/gsttextoverlay.h
index f7a7813..f72cb9e 100644
--- a/ext/pango/gsttextoverlay.h
+++ b/ext/pango/gsttextoverlay.h
@@ -2,7 +2,11 @@
 #define __GST_TEXT_OVERLAY_H__
 
 #include <gst/gst.h>
+#ifdef USE_PANGO_CAIRO
+#include <pango/pangocairo.h>
+#else
 #include <pango/pangoft2.h>
+#endif
 
 G_BEGIN_DECLS
 
@@ -125,8 +129,14 @@ struct _GstTextOverlay {
     gboolean                 wait_text;
 
     PangoLayout             *layout;
+#ifdef USE_PANGO_CAIRO
+    cairo_t                 *context;
+    cairo_surface_t         *surface;
+    guint8                  *buffer;
+#else
     FT_Bitmap                bitmap;
     gint                     bitmap_buffer_size;
+#endif
     gint                     baseline_y;
 
     gboolean                 need_render;
diff --git a/ext/pango/gsttextrender.c b/ext/pango/gsttextrender.c
index 006c6c7..fbfd76a 100644
--- a/ext/pango/gsttextrender.c
+++ b/ext/pango/gsttextrender.c
@@ -110,7 +110,12 @@ gst_text_render_class_init (GstTextRenderClass * klass)
   gobject_class->finalize = gst_text_render_finalize;
   gobject_class->set_property = gst_text_render_set_property;
 
+#ifdef USE_PANGO_CAIRO
+  klass->pango_context =
+	  pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (pango_cairo_font_map_get_default ()));
+#else
   klass->pango_context = pango_ft2_get_context (72, 72);
+#endif
   g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FONT_DESC,
       g_param_spec_string ("font-desc", "font description",
           "Pango font description of font "
@@ -121,6 +126,41 @@ gst_text_render_class_init (GstTextRenderClass * klass)
 }
 
 
+#ifdef USE_PANGO_CAIRO
+static void
+create_cairo_context (GstTextRender *render, gint width, gint height)
+{
+    gint rowstride;
+
+    rowstride = cairo_format_stride_for_width (CAIRO_FORMAT_A8, width);
+    render->buffer = g_malloc0 (width * rowstride);
+    render->surface = cairo_image_surface_create_for_data (render->buffer,
+                                                           CAIRO_FORMAT_A8,
+                                                           width,
+                                                           height,
+                                                           rowstride);
+    render->context = cairo_create (render->surface);
+}
+
+static void
+free_cairo_context (GstTextRender *render)
+{
+  cairo_destroy(render->context);
+  render->context = NULL;
+  cairo_surface_destroy (render->surface);
+  render->surface = NULL;
+  g_free (render->buffer);
+  render->buffer = NULL;
+}
+
+static void
+resize_bitmap (GstTextRender * render, gint width, gint height)
+{
+  free_cairo_context(render);
+  create_cairo_context(render, width, height);
+}
+
+#else
 static void
 resize_bitmap (GstTextRender * render, gint width, gint height)
 {
@@ -151,6 +191,7 @@ resize_bitmap (GstTextRender * render, gint width, gint height)
   memset (bitmap->buffer, 0, size);
   render->bitmap_buffer_size = size;
 }
+#endif
 
 static void
 gst_text_render_render_text (GstTextRender * render)
@@ -159,7 +200,14 @@ gst_text_render_render_text (GstTextRender * render)
 
   pango_layout_get_pixel_extents (render->layout, &ink_rect, &logical_rect);
   resize_bitmap (render, ink_rect.width, ink_rect.height + ink_rect.y);
+
+#ifdef USE_PANGO_CAIRO
+  cairo_move_to (render->context, -ink_rect.x, 0);
+  pango_cairo_show_layout (render->context, render->layout);
+#else
   pango_ft2_render_layout (&render->bitmap, render->layout, -ink_rect.x, 0);
+#endif
+
   render->baseline_y = ink_rect.y;
 }
 
@@ -177,11 +225,17 @@ gst_text_render_setcaps (GstPad * pad, GstCaps * caps)
 
   GST_DEBUG ("Got caps %" GST_PTR_FORMAT, caps);
 
+#ifdef USE_PANGO_CAIRO
+  render->width = width;
+  render->height = height;
+  ret = TRUE;
+#else
   if (width >= render->bitmap.width && height >= render->bitmap.rows) {
     render->width = width;
     render->height = height;
     ret = TRUE;
   }
+#endif
 
   gst_object_unref (render);
   return ret;
@@ -192,35 +246,46 @@ gst_text_render_fixate_caps (GstPad * pad, GstCaps * caps)
 {
   GstTextRender *render = GST_TEXT_RENDER (gst_pad_get_parent (pad));
   GstStructure *s = gst_caps_get_structure (caps, 0);
+  gint width, height;
+#ifdef USE_PANGO_CAIRO
+  width = cairo_image_surface_get_width (render->surface);
+  height = cairo_image_surface_get_height (render->surface);
+#else
+  width = render->bitmap.width;
+  height = render->bitmap.rows;
+#endif
 
   GST_DEBUG ("Fixating caps %" GST_PTR_FORMAT, caps);
-  gst_structure_fixate_field_nearest_int (s, "width", render->bitmap.width);
-  gst_structure_fixate_field_nearest_int (s, "height", render->bitmap.rows);
+  gst_structure_fixate_field_nearest_int (s, "width", width);
+  gst_structure_fixate_field_nearest_int (s, "height", height);
   GST_DEBUG ("Fixated to    %" GST_PTR_FORMAT, caps);
 
   gst_object_unref (render);
 }
 
 static void
-gst_text_renderer_bitmap_to_ayuv (GstTextRender * render, FT_Bitmap * bitmap,
-    guchar * pixbuf)
+gst_text_renderer_buffer_to_ayuv (GstTextRender * render,
+                                  guchar * buffer,
+                                  gint width,
+                                  gint height,
+                                  gint rowstride,
+                                  guchar * pixbuf)
 {
   int y;                        /* text bitmap coordinates */
-  int rowinc, bit_rowinc;
-  guchar *p, *bitp;
+  int rowinc, buf_rowinc;
+  guchar *p;
   guchar v;
 
-  rowinc = render->width - bitmap->width;
-  bit_rowinc = bitmap->pitch - bitmap->width;
+  rowinc = render->width - width;
+  buf_rowinc = rowstride - width;
 
-  bitp = bitmap->buffer;
   p = pixbuf;
 
-  for (y = 0; y < bitmap->rows; y++) {
+  for (y = 0; y < height; y++) {
     int n;
 
-    for (n = bitmap->width; n > 0; --n) {
-      v = *bitp;
+    for (n = width; n > 0; --n) {
+      v = *buffer;
       if (v) {
         p[0] = v;
         p[1] = 255;
@@ -228,10 +293,10 @@ gst_text_renderer_bitmap_to_ayuv (GstTextRender * render, FT_Bitmap * bitmap,
         p[3] = 0x80;
       }
       p += 4;
-      bitp++;
+      buffer++;
     }
     p += rowinc * 4;
-    bitp += bit_rowinc;
+    buffer += buf_rowinc;
   }
 }
 
@@ -246,6 +311,8 @@ gst_text_render_chain (GstPad * pad, GstBuffer * inbuf)
   guint8 *data = GST_BUFFER_DATA (inbuf);
   guint size = GST_BUFFER_SIZE (inbuf);
   gint n;
+  gint buffer_width, buffer_height, buffer_stride;
+  guchar *buffer;
 
   render = GST_TEXT_RENDER (gst_pad_get_parent (pad));
 
@@ -261,10 +328,25 @@ gst_text_render_chain (GstPad * pad, GstBuffer * inbuf)
   pango_layout_set_markup (render->layout, (gchar *) data, size);
   gst_text_render_render_text (render);
 
-  caps = gst_caps_new_simple ("video/x-raw-yuv", "format", GST_TYPE_FOURCC,
-      GST_MAKE_FOURCC ('A', 'Y', 'U', 'V'), "width", G_TYPE_INT,
-      render->bitmap.width, "height", G_TYPE_INT, render->bitmap.rows,
-      "framerate", GST_TYPE_FRACTION, 1, 1, NULL);
+#ifdef USE_PANGO_CAIRO
+  buffer_width = cairo_image_surface_get_width (render->surface);
+  buffer_height = cairo_image_surface_get_height(render->surface);
+  buffer_stride = cairo_image_surface_get_stride(render->surface);
+  buffer = render->buffer;
+#else
+  buffer_width = render->bitmap.width;
+  buffer_height = render->bitmap.rows;
+  buffer_stride = render->bitmap.pitch;
+  buffer = render->bitmap.buffer;
+#endif
+
+  caps = gst_caps_new_simple ("video/x-raw-yuv",
+                              "format", GST_TYPE_FOURCC,
+                              GST_MAKE_FOURCC ('A', 'Y', 'U', 'V'),
+                              "width", G_TYPE_INT, buffer_width,
+                              "height", G_TYPE_INT, buffer_height,
+                              "framerate", GST_TYPE_FRACTION, 1, 1,
+                              NULL);
 
   if (!gst_pad_set_caps (render->srcpad, caps)) {
     gst_caps_unref (caps);
@@ -291,8 +373,10 @@ gst_text_render_chain (GstPad * pad, GstBuffer * inbuf)
     data[n * 4 + 2] = data[n * 4 + 3] = 128;
   }
 
-  if (render->bitmap.buffer) {
-    gst_text_renderer_bitmap_to_ayuv (render, &render->bitmap, data);
+  if (buffer) {
+    gst_text_renderer_buffer_to_ayuv (render, buffer,
+                                      buffer_width, buffer_height, buffer_stride,
+                                      data);
   }
 
   ret = gst_pad_push (render->srcpad, outbuf);
@@ -310,7 +394,11 @@ gst_text_render_finalize (GObject * object)
 {
   GstTextRender *render = GST_TEXT_RENDER (object);
 
+#ifdef USE_PANGO_CAIRO
+  free_cairo_context (render);
+#else
   g_free (render->bitmap.buffer);
+#endif
 
   if (render->layout)
     g_object_unref (render->layout);
@@ -343,7 +431,13 @@ gst_text_render_init (GstTextRender * render, GstTextRenderClass * klass)
 
   render->layout =
       pango_layout_new (GST_TEXT_RENDER_GET_CLASS (render)->pango_context);
+#ifdef USE_PANGO_CAIRO
+  render->context = NULL;
+  render->surface = NULL;
+  render->buffer = NULL;
+#else
   memset (&render->bitmap, 0, sizeof (render->bitmap));
+#endif
 }
 
 static void
diff --git a/ext/pango/gsttextrender.h b/ext/pango/gsttextrender.h
index 008065b..e26eaad 100644
--- a/ext/pango/gsttextrender.h
+++ b/ext/pango/gsttextrender.h
@@ -2,7 +2,11 @@
 #define __GST_TEXT_RENDER_H__
 
 #include <gst/gst.h>
+#ifdef USE_PANGO_CAIRO
+#include <pango/pangocairo.h>
+#else
 #include <pango/pangoft2.h>
+#endif
 
 G_BEGIN_DECLS
 
@@ -33,8 +37,14 @@ struct _GstTextRender {
     gint                  width;
     gint                  height;
     PangoLayout          *layout;
+#ifdef USE_PANGO_CAIRO
+    cairo_t              *context;
+    cairo_surface_t      *surface;
+    guint8               *buffer;
+#else
     FT_Bitmap             bitmap;
     gint                  bitmap_buffer_size;
+#endif
     gint                  baseline_y;
 };
 
diff --git a/ext/pango/gsttimeoverlay.c b/ext/pango/gsttimeoverlay.c
index 1a59583..2f4eb5f 100644
--- a/ext/pango/gsttimeoverlay.c
+++ b/ext/pango/gsttimeoverlay.c
@@ -48,7 +48,7 @@
 
 #include <gst/video/video.h>
 
-#include <gsttimeoverlay.h>
+#include "gsttimeoverlay.h"
 
 static const GstElementDetails time_overlay_details =
 GST_ELEMENT_DETAILS ("Time overlay",
