rich d #1 It simply creates a new variable, calls String.ToCString, and then memfree's the temporary byte pointer. Thats why you use a stream and WriteString, it handles memory management for you.