Affects Version/s: Minecraft 1.7.10
Fix Version/s: None
So here's a kind of bug, maybe it's intended maybe not. It's not very annoying and there is a solution (explanation below).
So here is the thing. When you, and especially as a map maker, want some villagers with custom trades that's all fine. You can do that easily.
However, if you are aware of the fact that when you trade with the villager long enough there will be new trades you don't want then you'll try to stop that. The trick is to make an untradeable (don't know whether that's a word or not) trade at the end. Like trading air for air or id:118.
So if you try this this it'll work just perfectly.
, if you actually leave your world and then come back, you'll see that you're villagers are gone. They just disappeared. They didn't walk away, were not killed. (Your difficulty was on peaceful). I struggled a lot with this and I finally managed to find the problem.
The problem is that you make a trade with a block that can't be obtained. (Actually it are the blocks with a blue and red number behind them at the minecraftwiki id-list, like air, piston_head, flowing_lava, monster_spawner, but NOT bedrock or end_portal_frame, this is actually blue) . That block in the trade causes the villager to disappear in someway. When you replace it with for example bedrock, the villager will stay in it's place.
The block id of air is 0. This number is blue
— --- — --- — --- — --- —
The block id of bedrock is 7. This number is blue
I hope this helped!
And if this is a bug, it might be handy to solve it since air looks a bit nicer than bedrock and it's just annoying...