Index: resolve.c =================================================================== --- resolve.c (revision 115827) +++ resolve.c (working copy) @@ -1012,7 +1012,8 @@ && arg->expr->symtree->n.sym->attr.optional && formal_optional && arg->expr->rank - && (set_by_optional || arg->expr->rank != rank)) + && (set_by_optional || arg->expr->rank != rank) + && !(isym && isym->generic_id == GFC_ISYM_CONVERSION)) { gfc_error ("'%s' at %L is an array and OPTIONAL; it cannot " "therefore be an actual argument of an ELEMENTAL "