hmm, well, i think its happening when i use a "LineAfter" function that someone wrote me from here.

it worked find before tho, but happens when that is called at a particuar point in the poker game.

Code:
Private Function LineAfter(ByRef Expression As String, _
ByRef Find As String, _
Optional ByVal CompareMethod As VbCompareMethod = vbBinaryCompare) As String

On Error Resume Next
Dim lonStart As Long, lonEnd As Long
lonStart = InStr(1, Expression, Find, CompareMethod)
If lonStart > 0 Then
lonStart = lonStart + Len(Find) + 2 'Length of vbCrLf
lonEnd = InStr(lonStart, Expression, vbCrLf)
If lonEnd = 0 Then lonEnd = Len(Expression)
LineAfter = Mid$(Expression, lonStart, lonEnd - lonStart + 1)
End If
End Function

and i do have some VERY ugly code here...
This is what i use to get the last 3 lines of a richtextbox, and put them on PokerLast.text.

(dont kill me!)

Code:
Private Function GetLastLine(ByVal textBox As String)
Dim lngCount As Long 'The number of lines
Dim lngLineIndex As Long 'The index number for the line
Dim lngLength As Long 'The length of the string in the line
Dim strBuffer As String 'The string to hold what we're after
Dim lngCount2 As Long 'The number of lines
Dim lngLineIndex2 As Long 'The index number for the line
Dim lngLength2 As Long 'The length of the string in the line
Dim strBuffer2 As String 'The string to hold what we're after
Dim lngCount3 As Long 'The number of lines
Dim lngLineIndex3 As Long 'The index number for the line
Dim lngLength3 As Long 'The length of the string in the line
Dim strBuffer3 As String 'The string to hold what we're after
Dim lngCount4 As Long 'The number of lines
Dim lngLineIndex4 As Long 'The index number for the line
Dim lngLength4 As Long 'The length of the string in the line
Dim strBuffer4 As String 'The string to hold what we're after
Dim i As Integer

'Get the total line count (minus 1 to make it begin at zero)
lngCount = SendMessage(Poker.hWnd, EM_GETLINECOUNT, 0, 0) - 1
'Get the total line count (minus 1 to make it begin at zero)
lngCount2 = SendMessage(Poker.hWnd, EM_GETLINECOUNT, 0, 0) - 2
'Get the total line count (minus 1 to make it begin at zero)
lngCount3 = SendMessage(Poker.hWnd, EM_GETLINECOUNT, 0, 0) - 3



'Get the index for the last line (which is lngCount)
lngLineIndex = SendMessage(Poker.hWnd, EM_LINEINDEX, lngCount, 0)
'Get the index for the last line (which is lngCount)
lngLineIndex2 = SendMessage(Poker.hWnd, EM_LINEINDEX, lngCount2, 0)
'Get the index for the last line (which is lngCount)
lngLineIndex3 = SendMessage(Poker.hWnd, EM_LINEINDEX, lngCount3, 0)


'Get the length of the line at our index
lngLength = SendMessage(Poker.hWnd, EM_LINELENGTH, lngLineIndex, 0)
'Get the length of the line at our index
lngLength2 = SendMessage(Poker.hWnd, EM_LINELENGTH, lngLineIndex2, 0)
'Get the length of the line at our index
lngLength3 = SendMessage(Poker.hWnd, EM_LINELENGTH, lngLineIndex3, 0)


'Make a fixed length string, using the length of the string at the index
strBuffer = Space(lngLength)
'Make a fixed length string, using the length of the string at the index
strBuffer2 = Space(lngLength2)
'Make a fixed length string, using the length of the string at the index
strBuffer3 = Space(lngLength3)


'Put the last line of the text into the fixed length string
Call SendMessageStr(Poker.hWnd, EM_GETLINE, lngCount, ByVal strBuffer)
Call SendMessageStr(Poker.hWnd, EM_GETLINE, lngCount2, ByVal strBuffer2)
Call SendMessageStr(Poker.hWnd, EM_GETLINE, lngCount3, ByVal strBuffer3)


PokerLast.Text = strBuffer3 & vbNewLine & strBuffer2 & vbNewLine & strBuffer  'Display output
End Function