aux [] l (CicSubstitution.subst_vars exp_named_subst' body)
                in
                 (**** Step 3 ****)
-                let term_to_fold =
+                let term_to_fold, delta_expanded_term_to_fold =
                  let body' = CicSubstitution.subst_vars exp_named_subst' body in
                   match constant_args with
-                     [] -> body'
-                   | _ -> C.Appl (body'::constant_args)
+                     [] -> C.Const (uri,exp_named_subst'), body'
+                   | _ ->
+                     C.Appl ((C.Const (uri,exp_named_subst'))::constant_args),
+                      C.Appl (body'::constant_args)
                 in
                  let simplified_term_to_fold =
-                  reduceaux context [] term_to_fold
+                  reduceaux context [] delta_expanded_term_to_fold
                  in
                   replace (=) simplified_term_to_fold term_to_fold res
               with