Index: opensync/engine/opensync_obj_engine.c =================================================================== --- opensync/engine/opensync_obj_engine.c (revision 2731) +++ opensync/engine/opensync_obj_engine.c (working copy) @@ -1244,7 +1244,7 @@ OSyncObjTypeSink *objtype_sink = osync_member_find_objtype_sink(member, engine->objtype); /* If the sink engine isn't able/allowed to write we don't care if everything got written ("how dirty is it!?") */ - if (!osync_objtype_sink_get_write(objtype_sink)) + if (!objtype_sink || !osync_objtype_sink_get_write(objtype_sink)) break; for (e = sinkengine->entries; e; e = e->next) { @@ -1731,7 +1731,7 @@ OSyncObjTypeSink *objtype_sink = osync_member_find_objtype_sink(member, engine->objtype); /* Is there at least one other writeable sink? */ - if (osync_objtype_sink_get_write(objtype_sink) && write_sinks) { + if (objtype_sink && osync_objtype_sink_get_write(objtype_sink) && write_sinks) { _obj_engine_read_callback(sinkengine->proxy, sinkengine, *error); osync_trace(TRACE_INTERNAL, "no other writable sinks .... SKIP"); continue; @@ -1813,7 +1813,7 @@ /* Only commit change if the objtype sink is able/allowed to write. */ - if (osync_objtype_sink_get_write(objtype_sink) && osync_entry_engine_is_dirty(entry_engine)) { + if (objtype_sink && osync_objtype_sink_get_write(objtype_sink) && osync_entry_engine_is_dirty(entry_engine)) { osync_assert(entry_engine->change); OSyncChange *change = entry_engine->change;