diff --git a/Source/WebKit/efl/CMakeListsEfl.txt b/Source/WebKit/efl/CMakeListsEfl.txt
index a2660bf..fc1cc7c 100644
--- a/Source/WebKit/efl/CMakeListsEfl.txt
+++ b/Source/WebKit/efl/CMakeListsEfl.txt
@@ -74,9 +74,9 @@ LIST(APPEND WebKit_SOURCES
     efl/ewk/ewk_network.cpp
     efl/ewk/ewk_settings.cpp
     efl/ewk/ewk_protocol_handler.cpp
-    efl/ewk/ewk_tiled_backing_store.c
-    efl/ewk/ewk_tiled_matrix.c
-    efl/ewk/ewk_tiled_model.c
+    efl/ewk/ewk_tiled_backing_store.cpp
+    efl/ewk/ewk_tiled_matrix.cpp
+    efl/ewk/ewk_tiled_model.cpp
     efl/ewk/ewk_util.cpp
     efl/ewk/ewk_view.cpp
     efl/ewk/ewk_view_single.cpp
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp b/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp
index 76a99f8..10ca9b2 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp
+++ b/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp
@@ -21,7 +21,6 @@
 #include "config.h"
 #include "ewk_tiled_backing_store.h"
 
-#define _GNU_SOURCE
 #include "ewk_tiled_private.h"
 #include <Ecore.h>
 #include <Eina.h>
@@ -41,7 +40,6 @@
 # define MAX(a, b) ((a > b) ? a : b)
 #endif
 
-typedef enum _Ewk_Tiled_Backing_Store_Pre_Render_Priority Ewk_Tiled_Backing_Store_Pre_Render_Priority;
 typedef struct _Ewk_Tiled_Backing_Store_Data Ewk_Tiled_Backing_Store_Data;
 typedef struct _Ewk_Tiled_Backing_Store_Item Ewk_Tiled_Backing_Store_Item;
 typedef struct _Ewk_Tiled_Backing_Store_Pre_Render_Request Ewk_Tiled_Backing_Store_Pre_Render_Request;
@@ -50,6 +48,7 @@ enum _Ewk_Tiled_Backing_Store_Pre_Render_Priority {
     PRE_RENDER_PRIORITY_LOW = 0, /**< Append the request to the list */
     PRE_RENDER_PRIORITY_HIGH     /**< Prepend the request to the list */
 };
+typedef enum _Ewk_Tiled_Backing_Store_Pre_Render_Priority Ewk_Tiled_Backing_Store_Pre_Render_Priority;
 
 struct _Ewk_Tiled_Backing_Store_Item {
     EINA_INLIST;
@@ -126,7 +125,7 @@ static Evas_Smart_Class _parent_sc = EVAS_SMART_CLASS_INIT_NULL;
 int _ewk_tiled_log_dom = -1;
 
 #define PRIV_DATA_GET_OR_RETURN(obj, ptr, ...)                       \
-    Ewk_Tiled_Backing_Store_Data *ptr = evas_object_smart_data_get(obj); \
+    Ewk_Tiled_Backing_Store_Data* ptr = static_cast<Ewk_Tiled_Backing_Store_Data*>(evas_object_smart_data_get(obj)); \
     if (!ptr) {                                                      \
         CRITICAL("no private data in obj=%p", obj);                  \
         return __VA_ARGS__;                                          \
@@ -158,7 +157,7 @@ static inline void _ewk_tiled_backing_store_updates_process(Ewk_Tiled_Backing_St
 
 static int _ewk_tiled_backing_store_flush(void *data)
 {
-    Ewk_Tiled_Backing_Store_Data *priv = data;
+    Ewk_Tiled_Backing_Store_Data* priv = static_cast<Ewk_Tiled_Backing_Store_Data*>(data);
     Ewk_Tile_Unused_Cache *tuc = ewk_tile_matrix_unused_cache_get(priv->model.matrix);
 
     if (tuc) {
@@ -365,7 +364,7 @@ end:
 
 static Eina_Bool _ewk_tiled_backing_store_item_process_idler_cb(void *data)
 {
-    Ewk_Tiled_Backing_Store_Data *priv = data;
+    Ewk_Tiled_Backing_Store_Data* priv = static_cast<Ewk_Tiled_Backing_Store_Data*>(data);
 
     if (priv->process.pre_cb)
         data = priv->process.pre_cb(priv->process.pre_data, priv->self);
@@ -603,7 +602,7 @@ static void _ewk_tiled_backing_store_view_rows_all_del(Ewk_Tiled_Backing_Store_D
 
 static void _ewk_tiled_backing_store_render(void *data, Ewk_Tile *t, const Eina_Rectangle *area)
 {
-    Ewk_Tiled_Backing_Store_Data *priv = data;
+    Ewk_Tiled_Backing_Store_Data* priv = static_cast<Ewk_Tiled_Backing_Store_Data*>(data);
 
     INF("TODO %p (visible? %d) [%lu,%lu] %d,%d + %dx%d",
         t, t->visible, t->col, t->row, area->x, area->y, area->w, area->h);
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp b/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp
index c2f9c84..1a339f1 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp
+++ b/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp
@@ -21,7 +21,6 @@
 #include "config.h"
 #include "ewk_tiled_matrix.h"
 
-#define _GNU_SOURCE
 #include "ewk_tiled_backing_store.h"
 #include "ewk_tiled_private.h"
 #include <Eina.h>
@@ -62,8 +61,8 @@ static uint64_t bytes_leaked = 0;
 /* called when matrixsparse is resized or freed */
 static void _ewk_tile_matrix_cell_free(void *user_data, void *cell_data)
 {
-    Ewk_Tile_Matrix *tm = user_data;
-    Ewk_Tile *t = cell_data;
+    Ewk_Tile_Matrix* tm = static_cast<Ewk_Tile_Matrix*>(user_data);
+    Ewk_Tile* t = static_cast<Ewk_Tile*>(cell_data);
 
     if (!t)
         return;
@@ -94,7 +93,7 @@ static void _ewk_tile_matrix_cell_free(void *user_data, void *cell_data)
 /* called when cache of unused tile is flushed */
 static void _ewk_tile_matrix_tile_free(void *data, Ewk_Tile *t)
 {
-    Ewk_Tile_Matrix *tm = data;
+    Ewk_Tile_Matrix* tm = static_cast<Ewk_Tile_Matrix*>(data);
     Eina_Matrixsparse_Cell *cell;
  
     if (!eina_matrixsparse_cell_idx_get(tm->matrix, t->row, t->col, &cell)) {
@@ -271,8 +270,7 @@ Ewk_Tile_Unused_Cache *ewk_tile_matrix_unused_cache_get(const Ewk_Tile_Matrix *t
  */
 Ewk_Tile *ewk_tile_matrix_tile_exact_get(Ewk_Tile_Matrix *tm, unsigned long col, unsigned long row, float zoom)
 {
-    Ewk_Tile *t;
-    t = eina_matrixsparse_data_idx_get(tm->matrix, row, col);
+    Ewk_Tile* t = static_cast<Ewk_Tile*>(eina_matrixsparse_data_idx_get(tm->matrix, row, col));
     if (!t)
         return NULL;
 
@@ -302,10 +300,7 @@ Ewk_Tile *ewk_tile_matrix_tile_exact_get(Ewk_Tile_Matrix *tm, unsigned long col,
  */
 Eina_Bool ewk_tile_matrix_tile_exact_exists(Ewk_Tile_Matrix *tm, unsigned long col, unsigned long row, float zoom)
 {
-    Ewk_Tile *t;
-
-    t = eina_matrixsparse_data_idx_get(tm->matrix, row, col);
-    if (!t)
+    if (!eina_matrixsparse_data_idx_get(tm->matrix, row, col))
         return EINA_FALSE;
 
     return EINA_TRUE;
@@ -395,7 +390,6 @@ Eina_Bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix *tm, Ewk_Tile *t, double last
 
 Eina_Bool ewk_tile_matrix_tile_update(Ewk_Tile_Matrix *tm, unsigned long col, unsigned long row, const Eina_Rectangle *update)
 {
-    Ewk_Tile *t;
     Eina_Rectangle new_update;
     EINA_SAFETY_ON_NULL_RETURN_VAL(tm, EINA_FALSE);
     EINA_SAFETY_ON_NULL_RETURN_VAL(update, EINA_FALSE);
@@ -412,8 +406,7 @@ Eina_Bool ewk_tile_matrix_tile_update(Ewk_Tile_Matrix *tm, unsigned long col, un
     if (update->y + update->h - 1 >= tm->tile.h)
         new_update.h = tm->tile.h - update->y;
 
-    t = eina_matrixsparse_data_idx_get(tm->matrix, row, col);
-
+    Ewk_Tile* t = static_cast<Ewk_Tile*>(eina_matrixsparse_data_idx_get(tm->matrix, row, col));
     if (!t)
         return EINA_TRUE;
 
@@ -426,7 +419,6 @@ Eina_Bool ewk_tile_matrix_tile_update(Ewk_Tile_Matrix *tm, unsigned long col, un
 
 Eina_Bool ewk_tile_matrix_tile_update_full(Ewk_Tile_Matrix *tm, unsigned long col, unsigned long row)
 {
-    Ewk_Tile *t;
     Eina_Matrixsparse_Cell *cell;
     EINA_SAFETY_ON_NULL_RETURN_VAL(tm, EINA_FALSE);
 
@@ -436,7 +428,7 @@ Eina_Bool ewk_tile_matrix_tile_update_full(Ewk_Tile_Matrix *tm, unsigned long co
     if (!cell)
         return EINA_TRUE;
 
-    t = eina_matrixsparse_cell_data_get(cell);
+    Ewk_Tile* t = static_cast<Ewk_Tile*>(eina_matrixsparse_cell_data_get(cell));
     if (!t) {
         CRITICAL("matrix cell with no tile!");
         return EINA_TRUE;
@@ -518,11 +510,10 @@ Eina_Bool ewk_tile_matrix_update(Ewk_Tile_Matrix *tm, const Eina_Rectangle *upda
 
     while (eina_tile_grid_slicer_next(&slicer, &info)) {
         unsigned long col, row;
-        Ewk_Tile *t;
         col = info->col;
         row = info->row;
 
-        t = eina_matrixsparse_data_idx_get(tm->matrix, row, col);
+        Ewk_Tile* t = static_cast<Ewk_Tile*>(eina_matrixsparse_data_idx_get(tm->matrix, row, col));
         if (!t)
             continue;
 
@@ -541,14 +532,15 @@ Eina_Bool ewk_tile_matrix_update(Ewk_Tile_Matrix *tm, const Eina_Rectangle *upda
 void ewk_tile_matrix_updates_process(Ewk_Tile_Matrix *tm)
 {
     Eina_List *l, *l_next;
-    Ewk_Tile *t;
+    void* item;
     EINA_SAFETY_ON_NULL_RETURN(tm);
 
     // process updates, unflag tiles
-    EINA_LIST_FOREACH_SAFE(tm->updates, l, l_next, t) {
-        ewk_tile_updates_process(t, tm->render.cb, tm->render.data);
-        if (t->visible) {
-            ewk_tile_updates_clear(t);
+    EINA_LIST_FOREACH_SAFE(tm->updates, l, l_next, item) {
+        Ewk_Tile* tile = static_cast<Ewk_Tile*>(item);
+        ewk_tile_updates_process(tile, tm->render.cb, tm->render.data);
+        if (tile->visible) {
+            ewk_tile_updates_clear(tile);
             tm->updates = eina_list_remove_list(tm->updates, l);
         }
     }
@@ -556,11 +548,11 @@ void ewk_tile_matrix_updates_process(Ewk_Tile_Matrix *tm)
 
 void ewk_tile_matrix_updates_clear(Ewk_Tile_Matrix *tm)
 {
-    Ewk_Tile *t;
+    void* item;
     EINA_SAFETY_ON_NULL_RETURN(tm);
 
-    EINA_LIST_FREE(tm->updates, t)
-        ewk_tile_updates_clear(t);
+    EINA_LIST_FREE(tm->updates, item)
+        ewk_tile_updates_clear(static_cast<Ewk_Tile*>(item));
     tm->updates = NULL;
 }
 
@@ -584,10 +576,9 @@ void ewk_tile_matrix_dbg(const Ewk_Tile_Matrix *tm)
 
     EINA_ITERATOR_FOREACH(it, cell) {
         unsigned long row, col;
-        Ewk_Tile *t;
         eina_matrixsparse_cell_position_get(cell, &row, &col);
-        t = eina_matrixsparse_cell_data_get(cell);
 
+        Ewk_Tile* t = static_cast<Ewk_Tile*>(eina_matrixsparse_cell_data_get(cell));
         if (!t) {
             if (!last_empty) {
                 last_empty = EINA_TRUE;
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_matrix.h b/Source/WebKit/efl/ewk/ewk_tiled_matrix.h
index c437c37..86a6884 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_matrix.h
+++ b/Source/WebKit/efl/ewk/ewk_tiled_matrix.h
@@ -25,6 +25,10 @@
 
 #include <Evas.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* matrix of tiles */
 Ewk_Tile_Matrix* ewk_tile_matrix_new(Ewk_Tile_Unused_Cache* tuc, unsigned long cols, unsigned long rows, Evas_Colorspace cspace, void (* render_cb)(void* data, Ewk_Tile* t, const Eina_Rectangle* update), const void* render_data);
 void ewk_tile_matrix_free(Ewk_Tile_Matrix* tm);
@@ -54,6 +58,7 @@ void ewk_tile_matrix_dbg(const Ewk_Tile_Matrix* tm);
 void ewk_tile_unused_cache_dbg(const Ewk_Tile_Unused_Cache* tuc);
 void ewk_tile_accounting_dbg(void);
 
-
+#ifdef __cplusplus
+}
+#endif
 #endif // ewk_tiled_matrix_h
-
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_model.cpp b/Source/WebKit/efl/ewk/ewk_tiled_model.cpp
index d2e9479..d444df4 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_model.cpp
+++ b/Source/WebKit/efl/ewk/ewk_tiled_model.cpp
@@ -21,7 +21,6 @@
 #include "config.h"
 #include "ewk_tiled_model.h"
 
-#define _GNU_SOURCE
 #include "ewk_tiled_backing_store.h"
 #include "ewk_tiled_private.h"
 #include <Ecore_Evas.h>
@@ -37,10 +36,6 @@
 #include <sys/time.h>
 #endif
 
-#ifndef CAIRO_FORMAT_RGB16_565
-#define CAIRO_FORMAT_RGB16_565 4
-#endif
-
 #define IDX(col, row, rowspan) (col + (row * rowspan))
 #define MIN(a, b) ((a < b) ? a : b)
 #define MAX(a, b) ((a > b) ? a : b)
@@ -303,7 +298,7 @@ Ewk_Tile *ewk_tile_new(Evas *evas, Evas_Coord w, Evas_Coord h, float zoom, Evas_
 
     evas_object_image_size_set(t->image, t->w, t->h);
     evas_object_image_colorspace_set(t->image, t->cspace);
-    t->pixels = evas_object_image_data_get(t->image, EINA_TRUE);
+    t->pixels = static_cast<uint8_t*>(evas_object_image_data_get(t->image, EINA_TRUE));
     t->surface = cairo_image_surface_create_for_data(t->pixels, format, w, h, stride);
     status = cairo_surface_status(t->surface);
     if (status != CAIRO_STATUS_SUCCESS) {
@@ -591,13 +586,14 @@ static void _ewk_tile_unused_cache_free(Ewk_Tile_Unused_Cache *tuc)
  */
 void ewk_tile_unused_cache_clear(Ewk_Tile_Unused_Cache *tuc)
 {
-    Ewk_Tile_Unused_Cache_Entry *itr;
     EINA_SAFETY_ON_NULL_RETURN(tuc);
 
     if (!tuc->entries.count)
         return;
 
-    EINA_LIST_FREE(tuc->entries.list, itr) {
+    void* item;
+    EINA_LIST_FREE(tuc->entries.list, item) {
+        Ewk_Tile_Unused_Cache_Entry* itr = static_cast<Ewk_Tile_Unused_Cache_Entry*>(item);
         itr->tile_free.cb(itr->tile_free.data, itr->tile);
         free(itr);
     }
@@ -654,7 +650,6 @@ size_t ewk_tile_unused_cache_used_get(const Ewk_Tile_Unused_Cache *tuc)
 
 size_t ewk_tile_unused_cache_flush(Ewk_Tile_Unused_Cache *tuc, size_t bytes)
 {
-    Ewk_Tile_Unused_Cache_Entry *itr;
     Eina_List *l, *l_next;
     EINA_SAFETY_ON_NULL_RETURN_VAL(tuc, 0);
     size_t done;
@@ -670,9 +665,11 @@ size_t ewk_tile_unused_cache_flush(Ewk_Tile_Unused_Cache *tuc, size_t bytes)
      * Don't need to sort any more.
      */
 
+    void* item;
     done = 0;
     count = 0;
-    EINA_LIST_FOREACH_SAFE(tuc->entries.list, l, l_next, itr) {
+    EINA_LIST_FOREACH_SAFE(tuc->entries.list, l, l_next, item) {
+        Ewk_Tile_Unused_Cache_Entry* itr = static_cast<Ewk_Tile_Unused_Cache_Entry*>(item);
         Ewk_Tile *t = itr->tile;
         if (done > bytes)
             break;
@@ -752,12 +749,12 @@ void ewk_tile_unused_cache_thaw(Ewk_Tile_Unused_Cache *tuc)
  */
 Eina_Bool ewk_tile_unused_cache_tile_get(Ewk_Tile_Unused_Cache *tuc, Ewk_Tile *t)
 {
-    Ewk_Tile_Unused_Cache_Entry *entry;
     Eina_List *e, *l;
 
+    void* item;
     e = NULL;
-    EINA_LIST_FOREACH(tuc->entries.list, l, entry)
-    {
+    EINA_LIST_FOREACH(tuc->entries.list, l, item) {
+        Ewk_Tile_Unused_Cache_Entry* entry = static_cast<Ewk_Tile_Unused_Cache_Entry*>(item);
         if (entry->tile == t) {
             e = l;
             break;
@@ -771,7 +768,7 @@ Eina_Bool ewk_tile_unused_cache_tile_get(Ewk_Tile_Unused_Cache *tuc, Ewk_Tile *t
     tuc->entries.count--;
     tuc->memory.used -= sizeof(Ewk_Tile) + t->bytes;
     tuc->entries.list = eina_list_remove_list(tuc->entries.list, e);
-    free(entry);
+    free(item);
 
     return EINA_TRUE;
 }
@@ -827,15 +824,15 @@ Eina_Bool ewk_tile_unused_cache_tile_put(Ewk_Tile_Unused_Cache *tuc, Ewk_Tile *t
 
 void ewk_tile_unused_cache_dbg(const Ewk_Tile_Unused_Cache *tuc)
 {
-    Ewk_Tile_Unused_Cache_Entry *itr;
+    void* item;
     Eina_List *l;
     int count = 0;
     printf("Cache of unused tiles: entries: %zu/%zu, memory: %zu/%zu\n",
            tuc->entries.count, tuc->entries.allocated,
            tuc->memory.used, tuc->memory.max);
 
-    EINA_LIST_FOREACH(tuc->entries.list, l, itr) {
-        const Ewk_Tile *t = itr->tile;
+    EINA_LIST_FOREACH(tuc->entries.list, l, item) {
+        const Ewk_Tile *t = static_cast<Ewk_Tile_Unused_Cache_Entry*>(item)->tile;
         printf(" [%3lu,%3lu + %dx%d @ %0.3f]%c",
                t->col, t->row, t->w, t->h, t->zoom,
                t->visible ? '*': ' ');
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_model.h b/Source/WebKit/efl/ewk/ewk_tiled_model.h
index e65f310..15a0ae8 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_model.h
+++ b/Source/WebKit/efl/ewk/ewk_tiled_model.h
@@ -25,6 +25,10 @@
 
 #include <Evas.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* model */
 Ewk_Tile* ewk_tile_new(Evas* evas, Evas_Coord w, Evas_Coord h, float zoom, Evas_Colorspace cspace);
 void ewk_tile_free(Ewk_Tile* t);
@@ -52,5 +56,8 @@ void ewk_tile_unused_cache_thaw(Ewk_Tile_Unused_Cache* tuc);
 Eina_Bool ewk_tile_unused_cache_tile_get(Ewk_Tile_Unused_Cache* tuc, Ewk_Tile* t);
 Eina_Bool ewk_tile_unused_cache_tile_put(Ewk_Tile_Unused_Cache* tuc, Ewk_Tile* t, void (* tile_free_cb)(void* data, Ewk_Tile* t), const void* data);
 
+#ifdef __cplusplus
+}
+#endif
 #endif // ewk_tiled_model_h
 
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_private.h b/Source/WebKit/efl/ewk/ewk_tiled_private.h
index 94896c4..e6c4827 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_private.h
+++ b/Source/WebKit/efl/ewk/ewk_tiled_private.h
@@ -32,7 +32,7 @@ extern int _ewk_tiled_log_dom;
 #define OOM(op, size) CRITICAL("could not %s %zd bytes: %s", op, size, strerror(errno))
 #define MALLOC_OR_OOM_RET(ptr, size, ...)       \
     do {                                        \
-        ptr = malloc(size);                     \
+        ptr = static_cast<typeof(ptr)>(malloc(size));\
         if (!ptr && (size) > 0) {               \
             OOM("malloc", (size));              \
             return __VA_ARGS__;                 \
@@ -41,7 +41,7 @@ extern int _ewk_tiled_log_dom;
 
 #define CALLOC_OR_OOM_RET(ptr, size, ...)       \
     do {                                        \
-        ptr = calloc(1, size);                  \
+        ptr = static_cast<typeof(ptr)>(calloc(1, size));\
         if (!ptr && (size) > 0) {               \
             OOM("calloc", (size));              \
             return __VA_ARGS__;                 \
@@ -56,7 +56,7 @@ extern int _ewk_tiled_log_dom;
             OOM("realloc", (size));             \
             return __VA_ARGS__;                 \
         }                                       \
-        ptr = __tmp_ptr;                        \
+        ptr = static_cast<typeof(ptr)>(__tmp_ptr);\
     } while (0)
 
 #endif // ewk_tiled_private_h