I need some help dealing with this error:

java.lang.ArrayIndexOutOfBoundsException: 16
at com.lameguard.crypt.LamePacket.writeB(LamePacket.java:40)
at com.lameguard.LameGuard.assembleAnswer(LameGuard.java:445)
at l2ft.gameserver.network.l2.c2s.ProtocolVersion.runImpl(ProtocolVersion.java:94)
at l2ft.gameserver.network.l2.c2s.L2GameClientPacket.run(L2GameClientPacket.java:50)
at l2ft.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:38)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

What could be causing this?
Any suggestions are welcome!

At line 40 there is an index to an array that is past the end of the array. The index has a value of 16.
Look at line 40 and see how large the array is and what controls the value of the index is that is being used there.
Change the code so that the value of the index does not go past the end of the array.