diff --git a/src/libknot/packet/rrset-wire.c b/src/libknot/packet/rrset-wire.c
index 56e0cae2b4decddef9eb569e74fc8ec3a0792955..2b02969de7a1dfbfb6853fdc03e0a89a0f4f90f1 100644
--- a/src/libknot/packet/rrset-wire.c
+++ b/src/libknot/packet/rrset-wire.c
@@ -107,6 +107,10 @@ static void compr_set_ptr(knot_compr_t *compr, uint16_t hint,
 
 	uint16_t offset = written_at - compr->wire;
 
+	if (knot_wire_is_pointer(written_at)) {
+		offset = knot_wire_get_pointer(written_at);
+	}
+
 	knot_compr_hint_set(compr->rrinfo, hint, offset, written_size);
 }