diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index 2797d1ae8d..6489d47459 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -437,10 +437,13 @@ end: if (EINA_LIKELY(func->func && func->src)) { call->eo_id = _eo_obj_id_get(emb_obj); - call->obj = obj; /* FIXME-eo4: Hack, we retain the previous object so we unref it... */ + call->obj = _eo_ref(emb_obj); call->func = func->func; call->data = _eo_data_scope_get(emb_obj, func->src); + /* We reffed it above, but no longer need/use it. */ + _eo_unref(obj); + return EINA_TRUE; } }