diff --git a/binding/navigation-api.c b/binding/navigation-api.c
index 19913a1102954a2d74b9ded6d6067ef2112882d7..ab7a5b701291a0cf94d3f5018202a57c1e94cb26 100644
--- a/binding/navigation-api.c
+++ b/binding/navigation-api.c
@@ -135,10 +135,12 @@ static void broadcast(afb_req_t request, const char *name, gboolean cache)
 	json_object *jresp = afb_req_json(request);
 
 	if (cache) {
-		json_object **storage = get_storage_from_value(ns, name);
+		json_object **storage;
 
 		g_rw_lock_writer_lock(&ns->rw_lock);
 
+		storage = get_storage_from_value(ns, name);
+
 		if (*storage)
 			json_object_put(*storage);