Hmm, I didn't catch you were tracking changes for new (not persisted) records, not sure how useful that is (I don't think ```Dirty``` module does that). 

I think it's worth verifying (for records that have been persisted) that when you have several changes stacked, like: 
```
@tester.organization_ids = [3]
...
@tester.organization_ids = [3, 4]
```

```@tester.organization_ids_was``` will still return [1, 2]