You are right, it is probably coming from two different levels of the stack
OK, that is good then.

One is the Palm issues only 2 credits on a CONN_CMD TTP, and the other is the lsap value of OBEX. Can it be different each time?
Only issuing 2 credits is fine, it just means that the device giving the credits probably has less memory, so cannot hold as much data (TTP uses the credits as a flow control system).
Also there is no problem with where the OBEX LSAP actually is, IrDA uses fixed names rather than numbers, which is why there is a method for finding the LSAP from the name, and it can move as much as it wants between connections, but needs to stay the same during the connection.

I am not that hot on Win32 debug either, so appologies to the M$ gods if I get it wrong

I think your code up until the TTP connect is fine, but with the TTP connect there are two ways out of that loop, to go around it 10 times (and wait 1 second) or to get the response, and we do not know which it is, so I would add something to your debug to display the value of cnt after that loop has finished.
The other thing is I am not sure what the htons() function does, so I would be tempted to remove it just so that we know it is not causing the problem, try something like this:

MessageBox(NULL, _T("Got Here (1)"), _T("Message"), MB_OK);
dataBuff[0] = OBEX_CONNECT;
dataBuff[1] = 0x00;
dataBuff[2] = 0x07;
dataBuff[3] = OBEX_VERSION;
dataBuff[4] = OBEX_CONNECT_FLAGS;
dataBuff[5] = 0x00;
dataBuff[6] = 0x7F;

MessageBox(NULL, _T("Got Here (2)"), _T("Message"), MB_OK);

Note that I changed your max OBEX packet length to a much smaller value too, incase this is causing problems, once we get the connect frame TXed we can worry about the correct numbers.

We can then see if that gets the second message box.

The RR's begin before I see the first messagebox, and they continue while the messagebox is active, also.
That would be what I would expect, the IrDA part of the socket keeps the link running while you are dealing with the message boxes.

Let me know the value for cnt, and if that code change affects anything.
_________________________
Mark. [blue]MKI, MKII & MKIIa, all Blue, and all Mine![/blue]