--- a/net/minecraft/server/BehaviorProfession.java
+++ b/net/minecraft/server/BehaviorProfession.java
@@ -1,6 +1,11 @@
 package net.minecraft.server;
 
 import com.google.common.collect.ImmutableMap;
+// CraftBukkit start
+import org.bukkit.craftbukkit.entity.CraftVillager;
+import org.bukkit.craftbukkit.event.CraftEventFactory;
+import org.bukkit.event.entity.VillagerCareerChangeEvent;
+// CraftBukkit end
 
 public class BehaviorProfession extends Behavior<EntityVillager> {
 
@@ -15,7 +20,14 @@
     }
 
     protected void a(WorldServer worldserver, EntityVillager entityvillager, long i) {
-        entityvillager.setVillagerData(entityvillager.getVillagerData().withProfession(VillagerProfession.NONE));
+        // CraftBukkit start
+        VillagerCareerChangeEvent event = CraftEventFactory.callVillagerCareerChangeEvent(entityvillager, CraftVillager.nmsToBukkitProfession(VillagerProfession.NONE), VillagerCareerChangeEvent.ChangeReason.EMPLOYED);
+        if (event.isCancelled()) {
+            return;
+        }
+
+        entityvillager.setVillagerData(entityvillager.getVillagerData().withProfession(CraftVillager.bukkitToNmsProfession(event.getProfession())));
+        // CraftBukkit end
         entityvillager.a(worldserver);
     }
 }