Whenever you get NullReferenceException in a particular line, examine the line with respect to your code flow, i.e. you generally should know which of the variables or expressions can get a value of Nothing, so start with those first. Use either mouse hover or your immediate window.
In your example, message cannot be Nothing, because it's been checked previously for that. Also please do consider changing it to Is Nothing, rather than = Nothing. As written, it will also react to String.Empty, which is misleading. If you really want this behavior, use String.IsNullOrEmpty.
So the only thing that can be Nothing is Messages, which was probably never initialized:
Messages = New ArrayList
Or inline with declaration:
Dim Messages As New ArrayList
If you know that your Messages will always contain a list of strings, consider changing to Generic.List(Of String), you should get what you have now + type safety. You are only stuck with ArrayList class if using framework 1.1, and frankly by now all your projects should be at least 2.0, so consider upgrading if you haven't done so yet.
Messages?System.Collections.Genericnamespace, egList(Of T)...