Stop singletonPromise from assuming a returned promise

Fixes #656