Revert "Revert "Fix #503""

This reverts commit 475c67f0994bd5db3217cfe8ae7ec32bc0ed462a.
fix #503 better

Use the better flow control when possible, but have a fallback