We present CONSEQUENCE, a deterministic multi-threading library. CONSEQUENCE achieves deterministic execution via store buffering and strict ordering of synchronization operations. To ensure high performance under a wide variety of conditions, the ordering of synch operations is based on a deterministic clock [25], and store buffering is implemented using version-controlled memory [23].Recent work on deterministic concurrency [14,19] has proposed relaxing the consistency model beyond total store order (TSO). Through novel optimizations, CONSEQUENCE achieves the same or better performance on the Phoenix, PARSEC and SPLASH-2 benchmark suites, while retaining TSO memory consistency. Across 19 benchmark programs, CONSEQUENCE incurs a worst-case slowdown of 3.9× vs. pthreads, with 14 out of 19 programs at or below 2.5×. We believe this performance improvement takes parallel programming one step closer to "determinism by default."