submitted upstream, but here again for your use