diff --git a/src/kernel_services/ast_printing/cil_printer.ml b/src/kernel_services/ast_printing/cil_printer.ml
index a229b8c21798ecd925c7171ad3392143198958a8..88f336d80aca5c4a494a12f0a44b862e7736f564 100644
--- a/src/kernel_services/ast_printing/cil_printer.ml
+++ b/src/kernel_services/ast_printing/cil_printer.ml
@@ -911,7 +911,7 @@ class cil_printer () = object (self)
         | _ -> Kernel.fatal "Trying to print malformed initializer"
       in
       if not (Cil.isArrayType t) then
-        Pretty_utils.pp_list ~pre:"{@[<hv>" ~sep:",@ " ~suf:"@]}"
+        Pretty_utils.pp_list ~pre:"{@[<hv>" ~sep:",@ " ~suf:"@]}" ~empty:"{}"
           designated_init fmt initl
       else begin
         let print_index prev_index (designator,init as di) =
diff --git a/tests/syntax/empty_union.i b/tests/syntax/empty_union.i
index e941af4a437ce3eadf03caeac31baa9ef2e1f397..e6a8d86207b42ae67a427bf5b7d26d1ce556daba 100644
--- a/tests/syntax/empty_union.i
+++ b/tests/syntax/empty_union.i
@@ -1,5 +1,5 @@
 /* run.config*
-   STDOPT: +"-machdep gcc_x86_32"
+   STDOPT: +"-machdep gcc_x86_32 -print -ocode @PTEST_NAME@_reparse.c -then @PTEST_NAME@_reparse.c -ocode=''"
  EXIT: 1
    STDOPT:
  */
diff --git a/tests/syntax/oracle/empty_union.0.res.oracle b/tests/syntax/oracle/empty_union.0.res.oracle
index d977ab5bccffb0eebe01b9eda61d7735c5ee86ef..7d386369f1419cdca1541c94233289478a007fec 100644
--- a/tests/syntax/oracle/empty_union.0.res.oracle
+++ b/tests/syntax/oracle/empty_union.0.res.oracle
@@ -1,7 +1,8 @@
 [kernel] Parsing empty_union.i (no preprocessing)
+[kernel] Parsing empty_union_reparse.c (with preprocessing)
 /* Generated by Frama-C */
 union empty {
    
 };
-union empty eu = ;
+union empty eu = {};