[Windows Mobile Development and Hacking General] E-P-S:
i have re-edited the function once again:

Private Sub ListAdd(ByVal Ttext As String, Optional ByVal Write2File As Boolean = False)
'Versuch mit Listbox die automatisch den Fokus auf den zuletzt
'hinzugefügten Datensatz legt
Try
With ListBox1
.Items.Add(Ttext)
If .Items.Count > 0 Then
.SelectedIndex = .Items.Count - 1
End If
End With

'Wenn Write2File=True dann soll er den TText ins File schreiben

If Write2File = True Then txt.WriteLine(Ttext)
Catch e As Exception
'MsgBox(e.ToString)
txt.WriteLine(e.ToString)
If X = 10 Then 'Bei 10 Fehlern Text File speichern.
txt.Close()
Application.Exit()
End If
End Try

End If
End Sub

So it logged 10 Errors in a File:

System.NotSupportedException: Es kann keine Fehlermeldung angezeigt werden, da die optionale Ressource der Assembly, die die Fehlermeldung enthält, nicht gefunden wurde.
bei Microsoft.AGL.Common.MISC.HandleAr()
bei System.Windows.Forms.ListBox._NativeAdd()
at ObjectCollection.Add()
bei DeviceApplication1.Form1.ListAdd()
bei DeviceApplication1.Form1.SerialPort1_DataReceived()
bei System.IO.Ports.SerialPort.CatchReceivedEvents()
at EventLoopRunner.CallReceiveEvents()
at WorkItem.doWork()
bei System.Threading.Timer.ring()

System.NotSupportedException: Es kann keine Fehlermeldung angezeigt werden, da die optionale Ressource der Assembly, die die Fehlermeldung enthält, nicht gefunden wurde.
bei Microsoft.AGL.Common.MISC.HandleAr()
bei System.Windows.Forms.ListBox._NativeAdd()
at ObjectCollection.Add()
bei DeviceApplication1.Form1.ListAdd()
bei DeviceApplication1.Form1.GetGSM_STATUS()
bei DeviceApplication1.Form1.SerialPort1_DataReceived()
bei System.IO.Ports.SerialPort.CatchReceivedEvents()
at EventLoopRunner.CallReceiveEvents()
at WorkItem.doWork()
bei System.Threading.Timer.ring()

System.NotSupportedException: Es kann keine Fehlermeldung angezeigt werden, da die optionale Ressource der Assembly, die die Fehlermeldung enthält, nicht gefunden wurde.
bei Microsoft.AGL.Common.MISC.HandleAr()
bei System.Windows.Forms.ListBox._NativeAdd()
at ObjectCollection.Add()
bei DeviceApplication1.Form1.ListAdd()
bei DeviceApplication1.Form1.SerialPort1_DataReceived()
bei System.IO.Ports.SerialPort.CatchReceivedEvents()
at EventLoopRunner.CallReceiveEvents()
at WorkItem.doWork()
bei System.Threading.Timer.ring()

System.NotSupportedException: Es kann keine Fehlermeldung angezeigt werden, da die optionale Ressource der Assembly, die die Fehlermeldung enthält, nicht gefunden wurde.
bei Microsoft.AGL.Common.MISC.HandleAr()
bei System.Windows.Forms.ListBox._NativeAdd()
at ObjectCollection.Add()
bei DeviceApplication1.Form1.ListAdd()
bei DeviceApplication1.Form1.GetGSM_STATUS()
bei DeviceApplication1.Form1.SerialPort1_DataReceived()
bei System.IO.Ports.SerialPort.CatchReceivedEvents()
at EventLoopRunner.CallReceiveEvents()
at WorkItem.doWork()
bei System.Threading.Timer.ring()

System.NotSupportedException: Es kann keine Fehlermeldung angezeigt werden, da die optionale Ressource der Assembly, die die Fehlermeldung enthält, nicht gefunden wurde.
bei Microsoft.AGL.Common.MISC.HandleAr()
bei System.Windows.Forms.ListBox._NativeAdd()
at ObjectCollection.Add()
bei DeviceApplication1.Form1.ListAdd()
bei DeviceApplication1.Form1.SerialPort1_DataReceived()
bei System.IO.Ports.SerialPort.CatchReceivedEvents()
at EventLoopRunner.CallReceiveEvents()
at WorkItem.doWork()
bei System.Threading.Timer.ring()

System.NotSupportedException: Es kann keine Fehlermeldung angezeigt werden, da die optionale Ressource der Assembly, die die Fehlermeldung enthält, nicht gefunden wurde.
bei Microsoft.AGL.Common.MISC.HandleAr()
bei System.Windows.Forms.ListBox._NativeAdd()
at ObjectCollection.Add()
bei DeviceApplication1.Form1.ListAdd()
bei DeviceApplication1.Form1.GetGSM_STATUS()
bei DeviceApplication1.Form1.SerialPort1_DataReceived()
bei System.IO.Ports.SerialPort.CatchReceivedEvents()
at EventLoopRunner.CallReceiveEvents()
at WorkItem.doWork()
bei System.Threading.Timer.ring()

System.NotSupportedException: Es kann keine Fehlermeldung angezeigt werden, da die optionale Ressource der Assembly, die die Fehlermeldung enthält, nicht gefunden wurde.
bei Microsoft.AGL.Common.MISC.HandleAr()
bei System.Windows.Forms.ListBox._NativeAdd()
at ObjectCollection.Add()
bei DeviceApplication1.Form1.ListAdd()
bei DeviceApplication1.Form1.SerialPort1_DataReceived()
bei System.IO.Ports.SerialPort.CatchReceivedEvents()
at EventLoopRunner.CallReceiveEvents()
at WorkItem.doWork()
bei System.Threading.Timer.ring()

System.NotSupportedException: Es kann keine Fehlermeldung angezeigt werden, da die optionale Ressource der Assembly, die die Fehlermeldung enthält, nicht gefunden wurde.
bei Microsoft.AGL.Common.MISC.HandleAr()
bei System.Windows.Forms.ListBox._NativeAdd()
at ObjectCollection.Add()
bei DeviceApplication1.Form1.ListAdd()
bei DeviceApplication1.Form1.GetGSM_STATUS()
bei DeviceApplication1.Form1.SerialPort1_DataReceived()
bei System.IO.Ports.SerialPort.CatchReceivedEvents()
at EventLoopRunner.CallReceiveEvents()
at WorkItem.doWork()
bei System.Threading.Timer.ring()

System.NotSupportedException: Es kann keine Fehlermeldung angezeigt werden, da die optionale Ressource der Assembly, die die Fehlermeldung enthält, nicht gefunden wurde.
bei Microsoft.AGL.Common.MISC.HandleAr()
bei System.Windows.Forms.ListBox._NativeAdd()
at ObjectCollection.Add()
bei DeviceApplication1.Form1.ListAdd()
bei DeviceApplication1.Form1.SerialPort1_DataReceived()
bei System.IO.Ports.SerialPort.CatchReceivedEvents()
at EventLoopRunner.CallReceiveEvents()
at WorkItem.doWork()
bei System.Threading.Timer.ring()

Last but not least the complete project:

http://rapidshare.com/files/63389284/GPRSGPS.ZIP.html