Okay, I found the answer on another forum. Probably obvious to many here, but maybe it will help someone.
Usually the coin daemon does not supply LongPoll or stratum. These protocols are used to inform you when a new block is found in the network. If you are solomining you should set your scantime to something around 2-10seconds. So your miner fetches new work every 2-10seconds. Once a block is found on the network you will have a different prevhash, which causes your old getwork to be invalid.. If your miner is hashing on it for ,lets say a minute (i think this is default on cgminer), there is a chance that the network found the block a few seconds(e.g. 10) after your last getwork call. So now your hasher is hashing on an old getwork for another 50 seconds, trying to submit a block, finds out prevhash changed, and starts hashing on the new prevhash. But the block you have tried to submit, is already invalid for these 50seconds... so best way is to move to a pool or use low scantime(this does not matter on LAN usually).
I only got 1 reject, and 6500+ accepts.
try lowering your "expiry" and "scan-time" and set queue=0
here's my settings if you want to try:
queue=0
scan-time=2
expiry=2