diff --git a/mtp/MtpStorage.cpp b/mtp/MtpStorage.cpp
index ab4f8e0..1f4d142 100755
--- a/mtp/MtpStorage.cpp
+++ b/mtp/MtpStorage.cpp
@@ -36,7 +36,7 @@
 #include <signal.h>
 #include <sys/inotify.h>
 #include <fcntl.h>
-#include "tw_sys_atomics.h"
+#include "../tw_atomic.hpp"
 
 #define WATCH_FLAGS ( IN_CREATE | IN_DELETE | IN_MOVE | IN_MODIFY )
 
@@ -56,7 +56,7 @@
 	inotify_thread = 0;
 	inotify_fd = -1;
 	// Threading has not started yet so we should be safe to set these directly instead of using atomics
-	inotify_thread_kill = 0;
+	inotify_thread_kill.set_value(0);
 	sendEvents = false;
 	handleCurrentlySending = 0;
 	use_mutex = true;
@@ -73,8 +73,7 @@
 
 MtpStorage::~MtpStorage() {
 	if (inotify_thread) {
-		__tw_atomic_cmpxchg(0, 1, &inotify_thread_kill);
-		//inotify_thread_kill = 1;
+		inotify_thread_kill.set_value(1);
 		MTPD("joining inotify_thread after sending the kill notification.\n");
 		pthread_join(inotify_thread, NULL); // There's not much we can do if there's an error here
 		inotify_thread = 0;
@@ -698,7 +697,7 @@
 
 	MTPD("inotify thread starting.\n");
 
-	while (__tw_atomic_cmpxchg(0, inotify_thread_kill, &inotify_thread_kill) == 0) {
+	while (inotify_thread_kill.get_value() == 0) {
 		FD_ZERO(&fdset);
 		FD_SET(inotify_fd, &fdset);
 		seltmout.tv_sec = 0;
@@ -715,7 +714,7 @@
 			MTPE("inotify_t Can't read inotify events\n");
 		}
 
-		while (i < len && __tw_atomic_cmpxchg(0, inotify_thread_kill, &inotify_thread_kill) == 0) {
+		while (inotify_thread_kill.get_value() == 0) {
 			struct inotify_event *event = (struct inotify_event *) &buf[i];
 			if (event->len) {
 				MTPD("inotify event: wd: %i, mask: %x, name: %s\n", event->wd, event->mask, event->name);
diff --git a/mtp/MtpStorage.h b/mtp/MtpStorage.h
index cdbb73b..245debf 100755
--- a/mtp/MtpStorage.h
+++ b/mtp/MtpStorage.h
@@ -28,6 +28,7 @@
 #include <pthread.h>
 #include "btree.hpp"
 #include "MtpServer.h"
+#include "../tw_atomic.hpp"
 
 class MtpDatabase;
 struct inotify_event;
@@ -113,7 +114,7 @@
 	bool use_mutex;
 	pthread_mutex_t inMutex; // inotify mutex
 	pthread_mutex_t mtpMutex; // main mtp mutex
-	int inotify_thread_kill;
+	TWAtomicInt inotify_thread_kill;
 };
 
 #endif // _MTP_STORAGE_H
diff --git a/mtp/tw_sys_atomics.h b/mtp/tw_sys_atomics.h
deleted file mode 100644
index 6349a93..0000000
--- a/mtp/tw_sys_atomics.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _TW_SYS_ATOMICS_H
-#define _TW_SYS_ATOMICS_H
-
-#include <sys/cdefs.h>
-#include <sys/time.h>
-
-__BEGIN_DECLS
-
-/* Note: atomic operations that were exported by the C library didn't
- *       provide any memory barriers, which created potential issues on
- *       multi-core devices. We now define them as inlined calls to
- *       GCC sync builtins, which always provide a full barrier.
- *
- *       NOTE: The C library still exports atomic functions by the same
- *              name to ensure ABI stability for existing NDK machine code.
- *
- *       If you are an NDK developer, we encourage you to rebuild your
- *       unmodified sources against this header as soon as possible.
- */
-
-/* This was kanged from Android 4.4 bionic/libc/include/sys/atomics.h
- * This header was removed in Android 5.0 in favor of stdatomics.h but
- * to maintain compatibility across multiple trees, we are including our
- * own copy.
- */
-
-#ifndef __ATOMIC_INLINE__
-#define __ATOMIC_INLINE__ static __inline__ __attribute__((always_inline))
-#endif
-
-__ATOMIC_INLINE__ int
-__tw_atomic_cmpxchg(int old_value, int new_value, volatile int* ptr)
-{
-    /* We must return 0 on success */
-    return __sync_val_compare_and_swap(ptr, old_value, new_value) != old_value;
-}
-
-__END_DECLS
-
-#endif /* _TW_SYS_ATOMICS_H */
