Tabs were not being destroyed/restored correctly due to a call to a method that populated the view pager before it even had a chance of restoring itself. The solution was to null out the adapter before calling that method so the view pager will postpone the populating process.