diff --git a/game/client/src/main/java/net/minecraft/client/render/WorldRenderer.java b/game/client/src/main/java/net/minecraft/client/render/WorldRenderer.java
index 32a4f00ad..b57d0b40c 100644
--- a/game/client/src/main/java/net/minecraft/client/render/WorldRenderer.java
+++ b/game/client/src/main/java/net/minecraft/client/render/WorldRenderer.java
@@ -706,6 +706,7 @@ public class WorldRenderer
         }
         
         Debug.change("particles");
+        glDisable(GL_BLEND);
         particleEngine.renderLitParticles(mc.activeCamera, partialTicks);
         Lighting.disable();
         fogManager.setupFog(FogManager.FOG_MODE_NORMAL, farPlaneDistance, partialTicks);
diff --git a/game/client/src/main/java/net/minecraft/client/render/entity/EntityRendererFishingBobber.java b/game/client/src/main/java/net/minecraft/client/render/entity/EntityRendererFishingBobber.java
index 70f69f443..b3158088a 100644
--- a/game/client/src/main/java/net/minecraft/client/render/entity/EntityRendererFishingBobber.java
+++ b/game/client/src/main/java/net/minecraft/client/render/entity/EntityRendererFishingBobber.java
@@ -19,24 +19,25 @@ public class EntityRendererFishingBobber extends EntityRendererSprite<EntityFish
         super.render(tessellator, entity, x, y, z, yaw, partialTick);
         if(entity.owner != null)
         {
+            int handedNess = entity.owner.isLeftHanded() ? -1 : 1;
             float f11 = entity.owner.getSwingProgress(partialTick);
             float f12 = MathHelper.sin(MathHelper.sqrt_float(f11) * MathHelper.PI);
-            Vec3 vec3 = Vec3.getTempVec3(-0.5D, 0.03D, 0.8D);
+            Vec3 vec3 = Vec3.getTempVec3(-0.75D * handedNess, -0.05D, 0.8D);
             vec3.rotateAroundX((-(entity.owner.xRotO + (entity.owner.xRot - entity.owner.xRotO) * partialTick) * MathHelper.PI) / 180F);
             vec3.rotateAroundY((-(entity.owner.yRotO + (entity.owner.yRot - entity.owner.yRotO) * partialTick) * MathHelper.PI) / 180F);
             vec3.rotateAroundY(f12 * 0.5F);
             vec3.rotateAroundX(-f12 * 0.7F);
-            double xp = entity.owner.xo + (entity.owner.x - entity.owner.xo) * (double)partialTick + vec3.x;
-            double yp = entity.owner.yo + (entity.owner.y - entity.owner.yo) * (double)partialTick + vec3.y;
-            double zp = entity.owner.zo + (entity.owner.z - entity.owner.zo) * (double)partialTick + vec3.z;
+            double xp = MathHelper.lerp(entity.owner.xo, entity.owner.x, partialTick) + vec3.x;
+            double yp = MathHelper.lerp(entity.owner.yo, entity.owner.y, partialTick) + entity.owner.getHeadHeight() + vec3.y;
+            double zp = MathHelper.lerp(entity.owner.zo, entity.owner.z, partialTick) + vec3.z;
             if(renderDispatcher.settings.thirdPersonView.value > 0)
             {
                 float rr = ((entity.owner.yBodyRotO + (entity.owner.yBodyRot - entity.owner.yBodyRotO) * partialTick) * MathHelper.PI) / 180F;
                 double ss = MathHelper.sin(rr);
                 double cc = MathHelper.cos(rr);
-                xp = (entity.owner.xo + (entity.owner.x - entity.owner.xo) * (double)partialTick) - cc * 0.35D - ss * 0.85D;
-                yp = (entity.owner.yo + (entity.owner.y - entity.owner.yo) * (double)partialTick) - 0.45D;
-                zp = ((entity.owner.zo + (entity.owner.z - entity.owner.zo) * (double)partialTick) - ss * 0.35D) + cc * 0.85D;
+                xp = MathHelper.lerp(entity.owner.xo, entity.owner.x, partialTick) - (cc * 0.35D * handedNess) - (ss * 0.85D);
+                yp = MathHelper.lerp(entity.owner.yo, entity.owner.y, partialTick) + entity.owner.getHeadHeight() - 0.45D;
+                zp = (MathHelper.lerp(entity.owner.zo, entity.owner.z, partialTick) - (ss * 0.35D * handedNess)) + (cc * 0.85D);
             }
             double xh = entity.xo + (entity.x - entity.xo) * (double)partialTick;
             double yh = entity.yo + (entity.y - entity.yo) * (double)partialTick + 0.25D;
diff --git a/game/client/src/main/java/net/minecraft/client/render/entity/MobRenderer.java b/game/client/src/main/java/net/minecraft/client/render/entity/MobRenderer.java
index ae44e7b9a..92294f5df 100644
--- a/game/client/src/main/java/net/minecraft/client/render/entity/MobRenderer.java
+++ b/game/client/src/main/java/net/minecraft/client/render/entity/MobRenderer.java
@@ -33,6 +33,7 @@ public abstract class MobRenderer<T extends Mob> extends EntityRenderer<T>{
         loadEntityTexture(entity);
 //        bindTexture("/assets/minecraft/textures/entity/creeper/debug.png");
         GL11.glEnable(GL12.GL_RESCALE_NORMAL);
+        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
         GL11.glEnable(GL11.GL_BLEND);
         GL11.glDisable(GL11.GL_CULL_FACE);
 
@@ -98,6 +99,7 @@ public abstract class MobRenderer<T extends Mob> extends EntityRenderer<T>{
         GL11.glPopMatrix();
 
         GL11.glEnable(GL11.GL_CULL_FACE);
+        GL11.glDisable(GL11.GL_BLEND);
         GL11.glDisable(GL12.GL_RESCALE_NORMAL);
         renderSpecials(tessellator, entity, x, y, z);
     }
diff --git a/game/client/src/main/java/net/minecraft/client/sound/SoundEngine.java b/game/client/src/main/java/net/minecraft/client/sound/SoundEngine.java
index 9d9dccc91..945446b16 100644
--- a/game/client/src/main/java/net/minecraft/client/sound/SoundEngine.java
+++ b/game/client/src/main/java/net/minecraft/client/sound/SoundEngine.java
@@ -90,7 +90,7 @@ public class SoundEngine
 				final float xa2 = 0.0F;
 				final float ya2 = 1.0F;
 				final float za2 = 0.0F;
-				soundSystem.setListenerPosition((float) playerX, (float) playerY, (float) playerZ);
+				soundSystem.setListenerPosition((float) playerX, (float) playerY + player.getHeadHeight(), (float) playerZ);
 				soundSystem.setListenerOrientation(xa, ya, za, xa2, ya2, za2);
 			}
 		} finally {
