--- a/net/minecraft/server/StructureGenerator.java
+++ b/net/minecraft/server/StructureGenerator.java
@@ -93,7 +93,7 @@
         return this.c(blockposition) != null;
     }
 
-    protected StructureStart c(BlockPosition blockposition) {
+    protected synchronized StructureStart c(BlockPosition blockposition) { // CraftBukkit - synchronized
         Iterator iterator = this.c.values().iterator();
 
         while (iterator.hasNext()) {
@@ -115,7 +115,7 @@
         return null;
     }
 
-    public boolean b(World world, BlockPosition blockposition) {
+    public synchronized boolean b(World world, BlockPosition blockposition) { // CraftBukkit - synchronized
         this.a(world);
         Iterator iterator = this.c.values().iterator();
 
@@ -132,7 +132,7 @@
         return true;
     }
 
-    public BlockPosition getNearestGeneratedFeature(World world, BlockPosition blockposition) {
+    public synchronized BlockPosition getNearestGeneratedFeature(World world, BlockPosition blockposition) { // CraftBukkit - synchronized
         this.g = world;
         this.a(world);
         this.f.setSeed(world.getSeed());
@@ -194,7 +194,7 @@
         return null;
     }
 
-    protected void a(World world) {
+    protected synchronized void a(World world) { // CraftBukkit - synchronized
         if (this.a == null) {
             this.a = (PersistentStructure) world.a(PersistentStructure.class, this.a());
             if (this.a == null) {