--- a/net/minecraft/server/EntitySlice.java
+++ b/net/minecraft/server/EntitySlice.java
@@ -12,7 +12,7 @@
 
 public class EntitySlice<T> extends AbstractSet<T> {
 
-    private static final Set<Class<?>> a = Sets.newHashSet();
+    private static final Set<Class<?>> a = Sets.newConcurrentHashSet(); // CraftBukkit
     private final Map<Class<?>, List<T>> b = Maps.newHashMap();
     private final Set<Class<?>> c = Sets.newIdentityHashSet();
     private final Class<T> d;
@@ -40,7 +40,7 @@
             Object object = iterator.next();
 
             if (oclass.isAssignableFrom(object.getClass())) {
-                this.a(object, oclass);
+                this.a((T) object, oclass);
             }
         }
 
@@ -77,7 +77,7 @@
         List list = (List) this.b.get(oclass);
 
         if (list == null) {
-            this.b.put(oclass, Lists.newArrayList(new Object[] { t0}));
+            this.b.put(oclass, Lists.newArrayList(t0));
         } else {
             list.add(t0);
         }
@@ -125,7 +125,7 @@
     }
 
     public Iterator<T> iterator() {
-        return this.e.isEmpty() ? Iterators.emptyIterator() : Iterators.unmodifiableIterator(this.e.iterator());
+        return this.e.isEmpty() ? Iterators.<T>emptyIterator() : Iterators.unmodifiableIterator(this.e.iterator());
     }
 
     public int size() {