It still keeps saying that the transaction was submitted, but nothing happens and nothing shows up in my transactions.
Ok sure I have found the issue now. I checked the relay logs and it looks like the transaction is trying to spend a coinbase output from a P2Pool block which was orphaned. This a rare occurrence, but was bound to happen sooner or later.
1) All orphaned blocks will now be properly marked e.g.
167283 (Available in json output as well)
2) All transactions which are not confirmed in the main chain will now be marked e.g.
bc636ffa6089797c0acf4f8f864285c200790b496dc3551a6b8d9d5bbaa1b2bb3) If two competing blocks are found at the same height all transactions in both blocks will be marked as unconfirmed until the split is resolved.
Now stop finding bugs, I've got other stuff to work on

Chris Moore kindly made a python script to decrypt
My Wallet backups offline. I'm positing it here to archive:
#!/usr/bin/python
import base64, hashlib, hmac, json, sys
from Crypto.Cipher import AES
def prompt(p):
sys.stdout.write(p + ": ")
return sys.stdin.readline()[:-1]
def decrypt(encrypted, password):
encrypted = base64.b64decode(encrypted)
iv = encrypted[:16]
encrypted = encrypted[16:]
length = len(encrypted)
encrypted += ' ' * (15 - (length-1)%16)
hash = (hmac.new(password, iv + "\x00\x00\x00\x01", hashlib.sha1).digest() +
hmac.new(password, iv + "\x00\x00\x00\x02", hashlib.sha1).digest())[:32]
clear = AES.new(hash, AES.MODE_OFB, iv).decrypt(encrypted)[:length]
return clear
clear = decrypt(prompt("encrypted wallet"), prompt("password"))
obj = json.loads(clear)
if (obj.has_key('double_encryption')):
print("wallet uses double encryption")
password = obj['sharedKey'].encode('ascii') + prompt("2nd password")
for key in obj['keys']:
key['priv'] = decrypt(key['priv'], password)
print(json.dumps(obj, indent=4, sort_keys = True))