--- ../src-base/minecraft/net/minecraft/block/BlockFlowerPot.java
+++ ../src-work/minecraft/net/minecraft/block/BlockFlowerPot.java
@@ -162,13 +162,6 @@
 
     public void func_180663_b(World p_180663_1_, BlockPos p_180663_2_, IBlockState p_180663_3_)
     {
-        TileEntityFlowerPot tileentityflowerpot = this.func_176442_d(p_180663_1_, p_180663_2_);
-
-        if (tileentityflowerpot != null && tileentityflowerpot.func_145965_a() != null)
-        {
-            func_180635_a(p_180663_1_, p_180663_2_, new ItemStack(tileentityflowerpot.func_145965_a(), 1, tileentityflowerpot.func_145966_b()));
-        }
-
         super.func_180663_b(p_180663_1_, p_180663_2_, p_180663_3_);
     }
 
@@ -388,6 +381,31 @@
         return EnumWorldBlockLayer.CUTOUT;
     }
 
+
+    /*============================FORGE START=====================================*/
+    @Override
+    public java.util.List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
+    {
+        java.util.List<ItemStack> ret = super.getDrops(world, pos, state, fortune);
+        TileEntityFlowerPot te = world.func_175625_s(pos) instanceof TileEntityFlowerPot ? (TileEntityFlowerPot)world.func_175625_s(pos) : null;
+        if (te != null && te.func_145965_a() != null)
+            ret.add(new ItemStack(te.func_145965_a(), 1, te.func_145966_b()));
+        return ret;
+    }
+    @Override
+    public boolean removedByPlayer(World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
+    {
+        if (willHarvest) return true; //If it will harvest, delay deletion of the block until after getDrops
+        return super.removedByPlayer(world, pos, player, willHarvest);
+    }
+    @Override
+    public void func_180657_a(World world, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity te)
+    {
+        super.func_180657_a(world, player, pos, state, te);
+        world.func_175698_g(pos);
+    }
+    /*===========================FORGE END==========================================*/
+
     public static enum EnumFlowerType implements IStringSerializable
     {
         EMPTY("empty"),
