Hm, it seems very odd that we'd be overwriting stuff if it's not an array. Do we ever expect that to happen? If it doesn't happen, then we might just take out that check, I wonder?