I'm pretty sure the ordering here is incorrect. I believe the tailOrder is getting assigned too early, and the prevOrder would then point to the same order. It should instead be something like:
orderList.tailOrder.nextOrder = order
order.prevOrder = orderList.tailOrder
orderList.tailOrder = order
order.nextOrder = None
Right?