diff --git a/src/common/console_listener.cpp b/src/common/console_listener.cpp
index 27697ef1fb3f38cbdb9f59bdeeb9d0e308b13127..6a89edd4485521007b0eb3d2026156862558eef3 100644
--- a/src/common/console_listener.cpp
+++ b/src/common/console_listener.cpp
@@ -3,14 +3,10 @@
 // Refer to the license.txt file included.
 
 #include <algorithm>
-#include <cmath>
-#include <cstdio>
-#include <string>
+
 #ifdef _WIN32
 #include <windows.h>
 #include <array>
-#else
-#include <cstdarg>
 #endif
 
 #include "common/common.h"
diff --git a/src/common/file_search.cpp b/src/common/file_search.cpp
index a9d19477ded3dcf9d68b75c7b6ddf4347820e36d..cd50ace753bd7f89bb111f42f38b6dd3c320ad63 100644
--- a/src/common/file_search.cpp
+++ b/src/common/file_search.cpp
@@ -4,15 +4,13 @@
 
 
 #include "common/common.h"
-#include "common/common_paths.h"
+
 #ifndef _WIN32
-#include <sys/types.h>
 #include <dirent.h>
 #else
 #include <windows.h>
 #endif
 
-#include <string>
 #include <algorithm>
 
 #include "common/file_search.h"
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp
index b6ff2e40bd35e8d2eb94a137564cc6ace610dfe6..04d222ca1005fd168c2540e2208f7245ccd33298 100644
--- a/src/common/file_util.cpp
+++ b/src/common/file_util.cpp
@@ -4,9 +4,7 @@
 
 
 #include "common/common.h"
-#include "common/common_paths.h"
 #include "common/file_util.h"
-#include "common/string_util.h"
 
 #ifdef _WIN32
 #include <windows.h>
@@ -16,10 +14,7 @@
 #include <io.h>
 #include <direct.h>        // getcwd
 #else
-#include <cerrno>
-#include <cstdlib>
 #include <sys/param.h>
-#include <sys/types.h>
 #include <dirent.h>
 #endif
 
@@ -32,8 +27,6 @@
 #include <algorithm>
 #include <sys/stat.h>
 
-#include "common/string_util.h"
-
 #ifndef S_ISDIR
 #define S_ISDIR(m)  (((m)&S_IFMT) == S_IFDIR)
 #endif
diff --git a/src/common/log_manager.cpp b/src/common/log_manager.cpp
index 4e1cb60bdae82f3ca2a8b573037a5a777976304b..c2b5d0e2c5bdac9c21000332a6b469e53c4f862a 100644
--- a/src/common/log_manager.cpp
+++ b/src/common/log_manager.cpp
@@ -8,7 +8,6 @@
 #include "common/console_listener.h"
 #include "common/timer.h"
 #include "common/thread.h"
-#include "common/file_util.h"
 
 void GenericLog(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type, const char* file, int line, 
     const char* function, const char* fmt, ...)
diff --git a/src/common/math_util.cpp b/src/common/math_util.cpp
index 82eceab00d3b21e5b33ec1861b8d7126808fbf66..ab0e6b75c7cd26a794e4d7a0a509a60de4e8f0fe 100644
--- a/src/common/math_util.cpp
+++ b/src/common/math_util.cpp
@@ -6,8 +6,7 @@
 #include "common/common.h"
 #include "common/math_util.h"
 
-#include <cmath>
-#include <numeric>
+#include <numeric> // Necessary on OS X, but not Linux
 
 namespace MathUtil
 {
diff --git a/src/common/mem_arena.cpp b/src/common/mem_arena.cpp
index b76ac92d34748f06afe3aa0180f389e2e491f38a..a456beb2833c4042fade17438e49781bf4e0021b 100644
--- a/src/common/mem_arena.cpp
+++ b/src/common/mem_arena.cpp
@@ -22,11 +22,7 @@
 #include "common/string_util.h"
 
 #ifndef _WIN32
-#include <sys/stat.h>
 #include <fcntl.h>
-#include <unistd.h>
-#include <cerrno>
-#include <cstring>
 #ifdef ANDROID
 #include <sys/ioctl.h>
 #include <linux/ashmem.h>
diff --git a/src/common/memory_util.cpp b/src/common/memory_util.cpp
index e01e63175e8f5b04ea7ded1d6e0928a83c51e558..45bf5a49676699661bda35011f5e3c239a6dce32 100644
--- a/src/common/memory_util.cpp
+++ b/src/common/memory_util.cpp
@@ -10,9 +10,6 @@
 #ifdef _WIN32
 #include <windows.h>
 #include <psapi.h>
-#else
-#include <cerrno>
-#include <cstdio>
 #endif
 
 #if !defined(_WIN32) && defined(__x86_64__) && !defined(MAP_32BIT)
diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp
index e78aed75d9bff30cab8a4fd476816f7e17b93775..b0c65d47db19baa3d397a537992aa9a792ea7465 100644
--- a/src/common/string_util.cpp
+++ b/src/common/string_util.cpp
@@ -3,17 +3,13 @@
 // Refer to the license.txt file included.
 
 #include <algorithm>
-#include <cstdlib>
-#include <cstdio>
 
 #include "common/common.h"
-#include "common/common_paths.h"
 #include "common/string_util.h"
 
 #ifdef _WIN32
     #include <Windows.h>
 #else
-    #include <cerrno>
     #include <iconv.h>
 #endif
 
diff --git a/src/common/thread.cpp b/src/common/thread.cpp
index 830795182990638a8b2e5e204e26581f9f6801db..60d8ed075d1624020d310a4c59a5916ed7960e03 100644
--- a/src/common/thread.cpp
+++ b/src/common/thread.cpp
@@ -3,7 +3,6 @@
 // Refer to the license.txt file included.
 
 #include "common/thread.h"
-#include "common/common.h"
 
 #ifdef __APPLE__
 #include <mach/mach.h>
diff --git a/src/common/utf8.cpp b/src/common/utf8.cpp
index c83824d35cffd3154dd19bfa9e6f769196ce7ca1..be4ebc8556e635a328293816561f9356ee092958 100644
--- a/src/common/utf8.cpp
+++ b/src/common/utf8.cpp
@@ -19,12 +19,8 @@
 #endif
 
 #include <cstdlib>
-#include <cstdio>
 #include <cstring>
-#include <cstdarg>
-
 #include <algorithm>
-#include <string>
 
 #include "common/common_types.h"
 #include "common/utf8.h"
diff --git a/src/core/arm/disassembler/load_symbol_map.cpp b/src/core/arm/disassembler/load_symbol_map.cpp
index d7fc0a0421543e9e497924c6f7edd56e1c636b1a..f156c43ce21033db67b4589cd287270d02d0616e 100644
--- a/src/core/arm/disassembler/load_symbol_map.cpp
+++ b/src/core/arm/disassembler/load_symbol_map.cpp
@@ -6,7 +6,6 @@
 #include <vector>
 
 #include "common/symbols.h"
-#include "common/common_types.h"
 #include "common/file_util.h"
 
 #include "core/arm/disassembler/load_symbol_map.h"
diff --git a/src/core/core.cpp b/src/core/core.cpp
index f21801e52b6bb005b20f7d89f96d318ccfa833f2..01d4f0afaa0722633565f0230041ead81ddc856a 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -3,15 +3,9 @@
 // Refer to the license.txt file included.
 
 #include "common/common_types.h"
-#include "common/log.h"
-#include "common/symbols.h"
-
-#include "video_core/video_core.h"
 
 #include "core/core.h"
-#include "core/mem_map.h"
 #include "core/hw/hw.h"
-#include "core/hw/gpu.h"
 #include "core/arm/disassembler/arm_disasm.h"
 #include "core/arm/interpreter/arm_interpreter.h"
 
diff --git a/src/core/hle/config_mem.cpp b/src/core/hle/config_mem.cpp
index 8c898b26534de72359f40bb55d0ee5827e73317e..a45e614278fe93640ac433b1a912fd1752391874 100644
--- a/src/core/hle/config_mem.cpp
+++ b/src/core/hle/config_mem.cpp
@@ -3,7 +3,6 @@
 // Refer to the license.txt file included.  
 
 #include "common/common_types.h"
-#include "common/log.h"
 
 #include "core/hle/config_mem.h"
 
diff --git a/src/core/hle/coprocessor.cpp b/src/core/hle/coprocessor.cpp
index 9a5b0dedaa19eeb040a5d7e59b10a143a75709df..1eb33eb868d3c254747036fc2886c59daba0b792 100644
--- a/src/core/hle/coprocessor.cpp
+++ b/src/core/hle/coprocessor.cpp
@@ -5,7 +5,6 @@
 #include "core/hle/coprocessor.h"
 #include "core/hle/hle.h"
 #include "core/mem_map.h"
-#include "core/core.h"
 
 namespace HLE {
 
diff --git a/src/core/hle/hle.cpp b/src/core/hle/hle.cpp
index 53cda4a61b6226cf778b2a6788dcfd7d0b92d0e1..b03894ad7400d93f7a3eecd98da64868da68b27c 100644
--- a/src/core/hle/hle.cpp
+++ b/src/core/hle/hle.cpp
@@ -6,7 +6,6 @@
 
 #include "core/mem_map.h"
 #include "core/hle/hle.h"
-#include "core/hle/svc.h"
 #include "core/hle/kernel/thread.h"
 #include "core/hle/service/service.h"
 
diff --git a/src/core/hle/kernel/archive.cpp b/src/core/hle/kernel/archive.cpp
index 1596367c3c71cf1c009752100fb941cc1739a072..20536f40ff0e8db64d3899454f5f00578d8d0e10 100644
--- a/src/core/hle/kernel/archive.cpp
+++ b/src/core/hle/kernel/archive.cpp
@@ -7,7 +7,6 @@
 
 #include "core/file_sys/archive.h"
 #include "core/hle/service/service.h"
-#include "core/hle/kernel/kernel.h"
 #include "core/hle/kernel/archive.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index a4a2588756851ca4d3d142fc85f33c6275e00275..e56f1879e7472c02828acc2480daf068afa0de3f 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -2,8 +2,6 @@
 // Licensed under GPLv2
 // Refer to the license.txt file included.  
 
-#include <string.h>
-
 #include "common/common.h"
 
 #include "core/core.h"
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index 8bd9ca1a183a3172b3705c14e666c6a752d4f31c..33c0b2a47256e004cfdc19905902002d352e8821 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -3,10 +3,8 @@
 // Refer to the license.txt file included.  
 
 #include <algorithm>
-#include <cstdio>
 #include <list>
 #include <map>
-#include <string>
 #include <vector>
 
 #include "common/common.h"
@@ -15,7 +13,6 @@
 #include "core/core.h"
 #include "core/mem_map.h"
 #include "core/hle/hle.h"
-#include "core/hle/svc.h"
 #include "core/hle/kernel/kernel.h"
 #include "core/hle/kernel/thread.h"
 
diff --git a/src/core/hle/service/fs.cpp b/src/core/hle/service/fs.cpp
index 5eabf36ad5c828ff58267d661146f7a2cbc6050c..9e1998b0fd88f3d23a708f608c1e8fc2f8514df6 100644
--- a/src/core/hle/service/fs.cpp
+++ b/src/core/hle/service/fs.cpp
@@ -4,8 +4,6 @@
 
 #include "common/common.h"
 
-#include "core/loader/loader.h"
-#include "core/hle/hle.h"
 #include "core/hle/service/fs.h"
 #include "core/hle/kernel/archive.h"
 
diff --git a/src/core/hle/service/gsp.cpp b/src/core/hle/service/gsp.cpp
index 46c5a8ddd9910cb10ec7783a5f57c840fe0b32a5..accbe84e3ce6dcd4f3977b1f7d4d8598cb9ea28d 100644
--- a/src/core/hle/service/gsp.cpp
+++ b/src/core/hle/service/gsp.cpp
@@ -7,7 +7,6 @@
 #include "common/bit_field.h"
 
 #include "core/mem_map.h"
-#include "core/hle/hle.h"
 #include "core/hle/kernel/event.h"
 #include "core/hle/kernel/shared_memory.h"
 #include "core/hle/service/gsp.h"
diff --git a/src/core/hle/service/ndm.cpp b/src/core/hle/service/ndm.cpp
index 48755b6a742eae99df8549f94e8dcfce95d2bd9a..f6af0a153339f891202483fa822bd5a28308aab3 100644
--- a/src/core/hle/service/ndm.cpp
+++ b/src/core/hle/service/ndm.cpp
@@ -2,8 +2,6 @@
 // Licensed under GPLv2
 // Refer to the license.txt file included.
 
-#include "common/log.h"
-
 #include "core/hle/hle.h"
 #include "core/hle/service/ndm.h"
 
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index 00ac1c9c6c3dadadaff77510e41b2a20368d1ef3..9eb1726aa2d2ee1cd33e41ca7e209209135fd1e4 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -3,11 +3,8 @@
 // Refer to the license.txt file included.
 
 #include "common/common.h"
-#include "common/log.h"
 #include "common/string_util.h"
 
-#include "core/hle/hle.h"
-
 #include "core/hle/service/service.h"
 #include "core/hle/service/apt.h"
 #include "core/hle/service/fs.h"
@@ -16,8 +13,6 @@
 #include "core/hle/service/ndm.h"
 #include "core/hle/service/srv.h"
 
-#include "core/hle/kernel/kernel.h"
-
 namespace Service {
 
 Manager* g_manager = nullptr;  ///< Service manager
diff --git a/src/core/hle/service/srv.cpp b/src/core/hle/service/srv.cpp
index 23be3cf2cc1998ec9c2b5969cf4b4bb3170cbe63..eb2c73f93fccd481447098613d97561f45f20190 100644
--- a/src/core/hle/service/srv.cpp
+++ b/src/core/hle/service/srv.cpp
@@ -4,7 +4,6 @@
 
 #include "core/hle/hle.h"
 #include "core/hle/service/srv.h"
-#include "core/hle/service/service.h"
 #include "core/hle/kernel/event.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp
index bdcfae6f5c75120914bf89cc3ef7190d6340fb51..07a750b8959951f349e3b202128f34327cf4ddae 100644
--- a/src/core/hle/svc.cpp
+++ b/src/core/hle/svc.cpp
@@ -3,7 +3,6 @@
 // Refer to the license.txt file included.  
 
 #include <map>
-#include <string>
 
 #include "common/string_util.h"
 #include "common/symbols.h"
@@ -12,13 +11,11 @@
 
 #include "core/hle/kernel/address_arbiter.h"
 #include "core/hle/kernel/event.h"
-#include "core/hle/kernel/kernel.h"
 #include "core/hle/kernel/mutex.h"
 #include "core/hle/kernel/shared_memory.h"
 #include "core/hle/kernel/thread.h"
 
 #include "core/hle/function_wrappers.h"
-#include "core/hle/svc.h"
 #include "core/hle/service/service.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/hw/gpu.cpp b/src/core/hw/gpu.cpp
index 8709b8eb778b571600e0d40fbce286b6b459580a..2e09437767f3bf51e0537ceef467c445f71ad192 100644
--- a/src/core/hw/gpu.cpp
+++ b/src/core/hw/gpu.cpp
@@ -3,13 +3,11 @@
 // Refer to the license.txt file included.
 
 #include "common/common_types.h"
-#include "common/log.h"
 
 #include "core/core.h"
 #include "core/mem_map.h"
 
 #include "core/hle/hle.h"
-#include "core/hle/kernel/thread.h"
 #include "core/hle/service/gsp.h"
 
 #include "core/hw/gpu.h"
diff --git a/src/core/hw/hw.cpp b/src/core/hw/hw.cpp
index ed70486e61b1f41759538717442a2aa131a82bdd..efd94f14729a6dfe338f1d122ecab331f2f289f9 100644
--- a/src/core/hw/hw.cpp
+++ b/src/core/hw/hw.cpp
@@ -3,7 +3,6 @@
 // Refer to the license.txt file included.
 
 #include "common/common_types.h"
-#include "common/log.h"
 
 #include "core/hw/hw.h"
 #include "core/hw/gpu.h"
diff --git a/src/core/hw/ndma.cpp b/src/core/hw/ndma.cpp
index f6aa72d1616639dc6c7b026d9dc7cba88e1dca31..158241fd6dc50367c51f2a3cfc2116cc7cda8e07 100644
--- a/src/core/hw/ndma.cpp
+++ b/src/core/hw/ndma.cpp
@@ -3,7 +3,6 @@
 // Refer to the license.txt file included.
 
 #include "common/common_types.h"
-#include "common/log.h"
 
 #include "core/hw/ndma.h"
 
diff --git a/src/core/loader/loader.cpp b/src/core/loader/loader.cpp
index 365f5a2777475e2594eb786bba9217261e554e10..5cbb26f54daca21d4411e63467b72c078b612285 100644
--- a/src/core/loader/loader.cpp
+++ b/src/core/loader/loader.cpp
@@ -5,7 +5,6 @@
 #include <memory>
 
 #include "core/file_sys/archive_romfs.h"
-#include "core/loader/loader.h"
 #include "core/loader/elf.h"
 #include "core/loader/ncch.h"
 #include "core/hle/kernel/archive.h"
diff --git a/src/core/mem_map.cpp b/src/core/mem_map.cpp
index 14fc014712e83f920f1e348aee849f604bd8ebe9..cf12f24d9124faabb46eb9f8f17c2c3fefc02c01 100644
--- a/src/core/mem_map.cpp
+++ b/src/core/mem_map.cpp
@@ -6,7 +6,6 @@
 #include "common/mem_arena.h"
 
 #include "core/mem_map.h"
-#include "core/core.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/core/mem_map_funcs.cpp b/src/core/mem_map_funcs.cpp
index 391b75fc2d1a08ba993091f2a40d27cf3c83af70..f510df83503e61708d9b7598cda62ceb00f75897 100644
--- a/src/core/mem_map_funcs.cpp
+++ b/src/core/mem_map_funcs.cpp
@@ -8,7 +8,6 @@
 
 #include "core/mem_map.h"
 #include "core/hw/hw.h"
-#include "hle/hle.h"
 #include "hle/config_mem.h"
 
 namespace Memory {