I do not understand, why I get this error, because my request contains session string.

Here is step to reproduce the error:
1) loginRequest will returned me session string
2) this session string I put in SOAP header

Here is request:
<soap:Header>
<gwTrace>true</gwTrace>
<session>DCmKfmdRBFMxCLiJ</session>
</soap:Header>
<soap:Body>
<m:getAddressBookListRequest/>
</soap:Body>
</soap:Envelope>
And here is server response:
<gwm:status>
<gwt:code>59920</gwt:code>
<gwt:description>Missing session string : Missing session string : Missing session string : - gwd:event:gu2.5</gwt:description>
</gwm:status>
</gwm:getAddressBookListResponse>
</soap:Body></soap:Envelope>
Also, it's strange, that in <desctription> tag "Missing session string" repeats 3 times...

Error occured, only if there is delay between loginRequest and getAddressBookListRequest.
But delay lasts about 5 seconds and I do not think, that session will expire so fast.

And it doesn't matter between which two types of requests delay is. If delay exist - I will receive this error. I need your help. Thanks. Currently I fixed this error in brutal way - before each actual request I am sending GetTimestampRequest, then analyzing <status> tag - and if "missing session string" - I am doing loginRequest again...