I have encountered a couple problems with strings in the most recent GPC beta version. Most of the problems are due to missing range checks, e.g. when assigning a string to a shorter string, or passing a string to a procedure with a shorter string as formal parameter. 1) The program below illustrates some of these problems: program Test5; var s1 : string [500]; s2 : string [10]; type str5 = string [5]; procedure p1 (s : str5); begin Writeln (s.capacity, ' ', Length (s)); end; begin s1 := 'This is a relatively long string'; s2 := s1; { Copies all of s1 to s2; not just the first 10 characters } p1 (s1); { Passes all of s1 to procedure p1 } p1 (s2); end. Before exiting with a SIGSEGV exception (under DJGPP), the program prints 5 32 5 32 2) Another facet of the problem occurs when reading strings from a text file with Read[ln] (F, stringVar). If you call Readln, the program will read from the file until the next CR/LF, no matter the size (length) of stringVar, and try to copy the entire line to the variables stringVar (which will almost surely crash the program somehow; but not necessarily in the call to Readln. The SIGSEGV exception could come later, and with a stack trace which makes no sense). On the other hand, Read (F, stringVar) only reads a maximum of Length(stringVar) characters [as it should]. Jesper Lund