I don't understand clearly but have you tried adding a condition to the "picking" block... like
if: "player.free = true" (free is a boolean instance value)
"player" (does whatever action triggers the picking)
then: set player.free to false
do the "picking" thing
I guess this would keep the player from picking infinite blocks
and when it "drops" the block --- set player.free=true again
hope it helps