Error Code 22 returned from bitcoind sendrawtransaction I've created a raw transaction on testnet:

http://pastebin.com/v8rBmGkx

however I'm getting error: {"code":-22,"message":"TX rejected"}

I've looked in the debug.log and there is no other clues. Can anyone tell me (pls) what's wrong with my tx?

Additionally signrawtransaction returned correct: true. And as far as I can see the fees and output values add up. I'm a little confused to what the problem is?
The problem, is there is no problem. It looks like there was two issues I had, which contributed to the error. So this is a bit of speculation really. 

The first was that I had built bitcoind on the Mac (8.9+) and somehow the blockchain got somehow corrupted or something caused an issue. So I fixed this by running bitcoind -reindex

The second possible issue was that mempool had either already had the transaction and couldn't/hadn't resent it. 

Either way, there is a (throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX rejected"); // TODO: report validation state in rpcrawtransaction.cpp), when validating the transaction and my c++ is not good enough to help report the validation state.

But if anyone else suggests how I can approach it then I would gladly!