Paul, The patch works for your test case, but fails on the following test: character(LEN=12) :: b="123456789012" character(LEN=12) :: a="123456789012" FORALL(I=3:10) a(I:I+2)=a(I-2:I) print *, a IF (a.NE."121234567890") CALL ABORT() END that gives 121212121212 Abort instead of 121234567890 Dominique