diff --git a/libc3/buf_parse.c b/libc3/buf_parse.c
index 521ac2f..44c5f0b 100644
--- a/libc3/buf_parse.c
+++ b/libc3/buf_parse.c
@@ -680,6 +680,7 @@ sw buf_parse_call_op_unary (s_buf *buf, s_call *dest)
restore:
buf_save_restore_rpos(buf, &save);
call_clean(&tmp);
+ r = 0;
clean:
buf_save_clean(buf, &save);
return r;
diff --git a/libc3/hash.c b/libc3/hash.c
index dc51eb5..f08d312 100644
--- a/libc3/hash.c
+++ b/libc3/hash.c
@@ -161,7 +161,10 @@ void hash_update_ident (t_hash *hash, const s_ident *ident)
assert(hash);
assert(ident);
hash_update_u8(hash, '_');
- hash_update_sym(hash, ident->module_name);
+ if (ident->module_name) {
+ hash_update_sym(hash, ident->module_name);
+ hash_update_u8(hash, '.');
+ }
hash_update_sym(hash, ident->sym);
}