diff --git a/Spigot-Server-Patches/Reset-villager-inventory-on-cancelled-pickup-event.patch b/Spigot-Server-Patches/Reset-villager-inventory-on-cancelled-pickup-event.patch
new file mode 100644
index 0000000000..ca14363970
--- /dev/null
+++ b/Spigot-Server-Patches/Reset-villager-inventory-on-cancelled-pickup-event.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: BillyGalbreath <blake.galbreath@gmail.com>
+Date: Fri, 28 May 2021 06:48:48 -0500
+Subject: [PATCH] Reset villager inventory on cancelled pickup event
+
+
+diff --git a/src/main/java/net/minecraft/world/InventorySubcontainer.java b/src/main/java/net/minecraft/world/InventorySubcontainer.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/net/minecraft/world/InventorySubcontainer.java
++++ b/src/main/java/net/minecraft/world/InventorySubcontainer.java
+@@ -0,0 +0,0 @@ public class InventorySubcontainer implements IInventory, AutoRecipeOutput {
+         return this.items;
+     }
+ 
++    // Paper start
++    public void setContents(List<ItemStack> items) {
++        this.items.clear();
++        for(int i = 0; i < items.size(); i++) {
++            this.items.set(i, items.get(i));
++        }
++        this.update();
++    }
++    // Paper end
++
+     public void onOpen(CraftHumanEntity who) {
+         transaction.add(who);
+     }
+diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java
++++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java
+@@ -0,0 +0,0 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
+             }
+ 
+             // CraftBukkit start
++            List<ItemStack> contentsSnapshot = new java.util.ArrayList<>(inventorysubcontainer.getContents()); // Paper
+             ItemStack itemstack1 = inventorysubcontainer.a(itemstack);
+             if (CraftEventFactory.callEntityPickupItemEvent(this, entityitem, itemstack1.getCount(), false).isCancelled()) {
++                inventorysubcontainer.setContents(contentsSnapshot); // Paper
+                 return;
+             }
+             // CraftBukkit end