--- ../src-base/minecraft/net/minecraft/world/storage/SaveHandler.java
+++ ../src-work/minecraft/net/minecraft/world/storage/SaveHandler.java
@@ -107,20 +107,29 @@
         NBTTagCompound nbttagcompound;
         NBTTagCompound nbttagcompound1;
 
+        WorldInfo worldInfo = null;
+
         if (file1.exists())
         {
             try
             {
                 nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1));
                 nbttagcompound1 = nbttagcompound.func_74775_l("Data");
+                worldInfo = new WorldInfo(nbttagcompound1);
+                net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
                 return new WorldInfo(nbttagcompound1);
             }
+            catch (net.minecraftforge.fml.common.StartupQuery.AbortedException e)
+            {
+                throw e;
+            }
             catch (Exception exception1)
             {
                 exception1.printStackTrace();
             }
         }
 
+        net.minecraftforge.fml.common.FMLCommonHandler.instance().confirmBackupLevelDatUse(this);
         file1 = new File(this.field_75770_b, "level.dat_old");
 
         if (file1.exists())
@@ -129,7 +138,13 @@
             {
                 nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1));
                 nbttagcompound1 = nbttagcompound.func_74775_l("Data");
-                return new WorldInfo(nbttagcompound1);
+                worldInfo = new WorldInfo(nbttagcompound1);
+                net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
+                return worldInfo;
+             }
+            catch (net.minecraftforge.fml.common.StartupQuery.AbortedException e)
+            {
+                throw e;
             }
             catch (Exception exception)
             {
@@ -146,6 +161,8 @@
         NBTTagCompound nbttagcompound2 = new NBTTagCompound();
         nbttagcompound2.func_74782_a("Data", nbttagcompound1);
 
+        net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataSave(this, p_75755_1_, nbttagcompound2);
+
         try
         {
             File file1 = new File(this.field_75770_b, "level.dat_new");
@@ -184,6 +201,8 @@
         NBTTagCompound nbttagcompound1 = new NBTTagCompound();
         nbttagcompound1.func_74782_a("Data", nbttagcompound);
 
+        net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataSave(this, p_75761_1_, nbttagcompound1);
+
         try
         {
             File file1 = new File(this.field_75770_b, "level.dat_new");
