Turns out that using XAA is not an acceptable workaround as with it X tends to die on suspend/resume.