Just use a synchronized block. Actually you need two (aka "double checked locking", and no it isn't broken anymore).
Are you sure it isn't broken anymore?
Better yet, stop inventing your own singleton pattern, which in that form is really nothing more than an antipattern, and use factory methods that enforce the "singleton-ness" in the factory and not in the class.
Yes singleton is an antipattern but when I begin using a new API, I cannot immediately suggest design changes. I prefer using a factory in my own projects.