I've noticed that under certain conditions, StochasticSystem.evolve() can produce negative counts which should not be possible if I'm not mistaken. I've pushed a branch (neg-counts) which has a script to reproduce this behavior - python neg_counts.py should have the system evolve until negative counts are reached. There are also very few reactions occurring even with an extremely long time, which might be a related issue.