Can you make it impossible for allies to be hired away while they're on a march with your army? Really sick of hiring them for extra ooomph against a mob, only to have them hired away 5 seconds later. Meanwhile, allies on my list can't be hired because someone else already hired them. What the hell? I can't hire them away from someone, but someone can steal them from me? That's just broken. At least make them unhireable for 5 minutes when hired that way I (or everyone, for that matter) can fill their ally slots on a march and can keep them filled for the duration.
If you get the message “unable to buy ally... this ally was recently bought” go to the allies profile page and click the hire button from there.
The ally system can be annoying but I don't think making them unhirieable for 5 minutes is the answer. Maybe ATA could make it so the march strength is calculated when the march is sent instead of when it hits? This would negate the problem of failed marches due to allies being hired mid-march. Though as Tiashue said, there is a way of hiring allies even if you get that message. Just play the ally market and rake in some gold until you can find allies which will stick.
That would be ideal. I find it ridiculous that players can be hired away during a march, as if to suggest that there are people waiting along your march path with sacks of gold trying to poach your allies.