diff --git a/src/plugins/value/domains/multidim/multidim_domain.ml b/src/plugins/value/domains/multidim/multidim_domain.ml
index 1f94290c18fe920d05405b03a7cf2aa062fbbd9d..806c5a95ba9f3925b2e302a363241cb3bcb8cfa8 100644
--- a/src/plugins/value/domains/multidim/multidim_domain.ml
+++ b/src/plugins/value/domains/multidim/multidim_domain.ml
@@ -689,12 +689,10 @@ struct
         | `Value loc ->
           let update value' =
             let v = Value_or_Uninitialized.narrow value value' in
-            (* The value can legitimately be bottom on escaping variables (not
-               tracked by the multidim domain), or on empty structs or unions.
-               In these cases, do not reduce the state to bottom. *)
-            if Value_or_Uninitialized.is_bottom v
-            && not record.value.escaping
-            && not (Int_Base.is_zero (Bit_utils.sizeof_lval lv))
+            (* The value can legitimately be bottom on escaping variables,
+               which are not tracked by the multidim domain.
+               In this case, do not reduce the state to bottom. *)
+            if Value_or_Uninitialized.is_bottom v && not record.value.escaping
             then `Bottom
             else `Value v
           in