diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index 253af335..4b55f273 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -46,9 +46,9 @@ endif()
 check_cxx_source_compiles("
   #include <atomic>
   int main() {
-    std::atomic<unsigned int> x;
-    x.fetch_add(1);
-    x.fetch_sub(1);
+    std::atomic_int x;
+    ++x;
+    --x;
     return 0;
   }
 " HAVE_STD_ATOMIC)
diff --git a/taglib/toolkit/trefcounter.cpp b/taglib/toolkit/trefcounter.cpp
index eb2aa69f..6638fcaa 100644
--- a/taglib/toolkit/trefcounter.cpp
+++ b/taglib/toolkit/trefcounter.cpp
@@ -31,9 +31,9 @@
 
 #if defined(HAVE_STD_ATOMIC)
 # include <atomic>
-# define ATOMIC_INT std::atomic<unsigned int>
-# define ATOMIC_INC(x) x.fetch_add(1)
-# define ATOMIC_DEC(x) (x.fetch_sub(1) - 1)
+# define ATOMIC_INT std::atomic_int
+# define ATOMIC_INC(x) (++x)
+# define ATOMIC_DEC(x) (--x)
 #elif defined(HAVE_GCC_ATOMIC)
 # define ATOMIC_INT int
 # define ATOMIC_INC(x) __sync_add_and_fetch(&x, 1)