At least one timer is used to prevent a stall condition. If a timer is not active, the timer is started for a data block that is correctly received. The data block has a sequence number higher than a sequence number of another data block that was first expected to be received. When the timer is stopped or expires, all correctly received data blocks among data blocks up to and including a data block having a sequence number that is immediately before the sequence number of the data block for which the timer was started is delivered to a higher layer. Further, all correctly received data blocks up to a first missing data block, including the data block for which the timer was started, is delivered to the higher layer.