diff --git a/src/Makefile.am b/src/Makefile.am
index 63d4e31..fc4cb29 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -15,6 +15,7 @@
 HBCFLAGS =
 HBLIBS =
 HBSOURCES =  \
+	hb-atomic-private.hh \
 	hb-blob.cc \
 	hb-buffer-private.hh \
 	hb-buffer.cc \
diff --git a/src/hb-atomic-private.hh b/src/hb-atomic-private.hh
new file mode 100644
index 0000000..c4dabe1
--- /dev/null
+++ b/src/hb-atomic-private.hh
@@ -0,0 +1,78 @@
+/*
+ * Copyright © 2007  Chris Wilson
+ * Copyright © 2009,2010  Red Hat, Inc.
+ * Copyright © 2011  Google, Inc.
+ *
+ *  This is part of HarfBuzz, a text shaping library.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ *
+ * Contributor(s):
+ *	Chris Wilson <chris@chris-wilson.co.uk>
+ * Red Hat Author(s): Behdad Esfahbod
+ * Google Author(s): Behdad Esfahbod
+ */
+
+#ifndef HB_ATOMIC_PRIVATE_HH
+#define HB_ATOMIC_PRIVATE_HH
+
+#include "hb-private.hh"
+
+
+/* atomic_int */
+
+/* We need external help for these */
+
+#if !defined(HB_NO_MT) && defined(HAVE_GLIB)
+
+#include <glib.h>
+typedef volatile int hb_atomic_int_t;
+#if GLIB_CHECK_VERSION(2,29,5)
+#define hb_atomic_int_add(AI, V)	g_atomic_int_add (&(AI), V)
+#else
+#define hb_atomic_int_add(AI, V)	g_atomic_int_exchange_and_add (&(AI), V)
+#endif
+#define hb_atomic_int_get(AI)		g_atomic_int_get (&(AI))
+
+
+#elif !defined(HB_NO_MT) && defined(_MSC_VER) && _MSC_VER >= 1600
+
+#include <intrin.h>
+typedef long hb_atomic_int_t;
+#define hb_atomic_int_add(AI, V)	_InterlockedExchangeAdd (&(AI), V)
+#define hb_atomic_int_get(AI)		(_ReadBarrier (), (AI))
+
+#elif !defined(HB_NO_MT) && defined(__APPLE__)
+
+#include <libkern/OSAtomic.h>
+typedef int32_t hb_atomic_int_t;
+#define hb_atomic_int_add(AI, V)	(OSAtomicAdd32Barrier((V), &(AI)), (AI) - (V))
+#define hb_atomic_int_get(AI)		OSAtomicAdd32Barrier(0, &(AI))
+
+#else
+
+#define HB_ATOMIC_INT_NIL 1
+typedef volatile int hb_atomic_int_t;
+#define hb_atomic_int_add(AI, V)	((AI) += (V), (AI) - (V))
+#define hb_atomic_int_get(AI)		(AI)
+
+#endif
+
+
+#endif /* HB_ATOMIC_PRIVATE_HH */
diff --git a/src/hb-mutex-private.hh b/src/hb-mutex-private.hh
index 7b960c5..95228f8 100644
--- a/src/hb-mutex-private.hh
+++ b/src/hb-mutex-private.hh
@@ -35,7 +35,6 @@
 #include "hb-private.hh"
 
 
-
 /* mutex */
 
 /* We need external help for these */
diff --git a/src/hb-object-private.hh b/src/hb-object-private.hh
index 754dcfa..edd8921 100644
--- a/src/hb-object-private.hh
+++ b/src/hb-object-private.hh
@@ -34,10 +34,10 @@
 
 #include "hb-private.hh"
 
+#include "hb-atomic-private.hh"
 #include "hb-mutex-private.hh"
 
 
-
 /* Debug */
 
 #ifndef HB_DEBUG_OBJECT
@@ -45,49 +45,6 @@
 #endif
 
 
-/* atomic_int */
-
-/* We need external help for these */
-
-#if !defined(HB_NO_MT) && defined(HAVE_GLIB)
-
-#include <glib.h>
-typedef volatile int hb_atomic_int_t;
-#if GLIB_CHECK_VERSION(2,29,5)
-#define hb_atomic_int_add(AI, V)	g_atomic_int_add (&(AI), V)
-#else
-#define hb_atomic_int_add(AI, V)	g_atomic_int_exchange_and_add (&(AI), V)
-#endif
-#define hb_atomic_int_get(AI)		g_atomic_int_get (&(AI))
-
-
-#elif !defined(HB_NO_MT) && defined(_MSC_VER) && _MSC_VER >= 1600
-
-#include <intrin.h>
-typedef long hb_atomic_int_t;
-#define hb_atomic_int_add(AI, V)	_InterlockedExchangeAdd (&(AI), V)
-#define hb_atomic_int_get(AI)		(_ReadBarrier (), (AI))
-
-#elif !defined(HB_NO_MT) && defined(__APPLE__)
-
-#include <libkern/OSAtomic.h>
-typedef int32_t hb_atomic_int_t;
-#define hb_atomic_int_add(AI, V)	(OSAtomicAdd32Barrier((V), &(AI)), (AI) - (V))
-#define hb_atomic_int_get(AI)		OSAtomicAdd32Barrier(0, &(AI))
-
-#else
-
-#define HB_ATOMIC_INT_NIL 1
-
-typedef volatile int hb_atomic_int_t;
-#define hb_atomic_int_add(AI, V)	((AI) += (V), (AI) - (V))
-#define hb_atomic_int_get(AI)		(AI)
-
-#endif
-
-
-
-
 /* reference_count */
 
 typedef struct {
@@ -198,7 +155,7 @@
   inline void trace (const char *function) const {
     if (unlikely (!this)) return;
     /* XXX We cannot use DEBUG_MSG_FUNC here since that one currecntly only
-     * prints the class name and throughs away the template info. */
+     * prints the class name and throws away the template info. */
     DEBUG_MSG (OBJECT, (void *) this,
 	       "%s refcount=%d",
 	       function,
@@ -208,8 +165,6 @@
 };
 
 
-
-
 /* object */
 
 template <typename Type>
@@ -260,7 +215,4 @@
 }
 
 
-
-
-
 #endif /* HB_OBJECT_PRIVATE_HH */
diff --git a/src/hb-warning.cc b/src/hb-warning.cc
index 1ba0f99..6b5585f 100644
--- a/src/hb-warning.cc
+++ b/src/hb-warning.cc
@@ -24,8 +24,8 @@
  * Google Author(s): Behdad Esfahbod
  */
 
+#include "hb-atomic-private.hh"
 #include "hb-mutex-private.hh"
-#include "hb-object-private.hh"
 
 
 #if !defined(HB_NO_MT) && defined(HB_ATOMIC_INT_NIL)
