I have the same problem, but I managed to retrieve this bit of info from the server log.
2012-07-30 16:15:26 [WARNING] Failed to handle packet: java.lang.IllegalArgumentException: Can't create an EntityItem for a null item
java.lang.IllegalArgumentException: Can't create an EntityItem for a null item
at net.minecraft.server.EntityItem.<init>(EntityItem.java:29)
at ee.core.PickupHandler.onItemPickup(PickupHandler.java:29)
at forge.ForgeHooks.onItemPickup(ForgeHooks.java:165)
at net.minecraft.server.EntityItem.a_(EntityItem.java:166)
at net.minecraft.server.EntityHuman.l(EntityHuman.java:363)
at net.minecraft.server.EntityHuman.e(EntityHuman.java:355)
at net.minecraft.server.EntityLiving.F_(EntityLiving.java:447)
at net.minecraft.server.EntityHuman.F_(EntityHuman.java:168)
at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:233)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:375)
at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:234)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:121)
at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:556)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:453)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
This error pops up, and then the player who the crash happened to
cannot join again without it showing up again.
The only way for them to rejoin is to delete their server-side player.dat file.