diff --git a/aegisub/libaegisub/common/path.cpp b/aegisub/libaegisub/common/path.cpp
index 879cd8104ec09bd53aa12cafb80f24cc47d2be63..5233c0c16f317ed7ee16e3e4295ff8cf22b579ae 100644
--- a/aegisub/libaegisub/common/path.cpp
+++ b/aegisub/libaegisub/common/path.cpp
@@ -18,6 +18,8 @@
 /// @brief Common paths.
 /// @ingroup libaegisub
 
+#include "config.h"
+
 #ifndef LAGI_PRE
 #include <vector>
 #endif
diff --git a/aegisub/libaegisub/common/util.cpp b/aegisub/libaegisub/common/util.cpp
index d2e19cb44a49c961c1abde344f5bbd7aada264cc..05586549cbf638ac71e679556713ea663ddde6d2 100644
--- a/aegisub/libaegisub/common/util.cpp
+++ b/aegisub/libaegisub/common/util.cpp
@@ -21,7 +21,6 @@
 #ifndef LAGI_PRE
 #include <errno.h>
 #include <stdio.h>
-#include <stdlib.h>
 
 #include <climits>
 #include <locale>
diff --git a/aegisub/libaegisub/include/libaegisub/util.h b/aegisub/libaegisub/include/libaegisub/util.h
index b9e2161b103d80e15c68e9cb4109c57c1c73d736..55c21dec7269bb92cd5adae6f39fb145f206da49 100644
--- a/aegisub/libaegisub/include/libaegisub/util.h
+++ b/aegisub/libaegisub/include/libaegisub/util.h
@@ -19,11 +19,9 @@
 /// @ingroup libaegisub
 
 #ifndef LAGI_PRE
-#include <string>
-#include <stdio.h>
-#include <time.h>
-#include <sys/statvfs.h>
+#include <stdint.h>
 
+#include <string>
 #include <algorithm>
 #endif // LAGI_PRE
 
diff --git a/aegisub/libaegisub/unix/io.cpp b/aegisub/libaegisub/unix/io.cpp
index e4ae5224450fccb79c652cf1f2de3c0e82853bfa..50e1ddecd130caafa907348aad451fb860835df7 100644
--- a/aegisub/libaegisub/unix/io.cpp
+++ b/aegisub/libaegisub/unix/io.cpp
@@ -18,6 +18,8 @@
 /// @brief Unix IO methods.
 /// @ingroup libaegisub unix
 
+#include "config.h"
+
 #ifndef LAGI_PRE
 #include <sys/stat.h>
 #include <errno.h>
diff --git a/aegisub/libaegisub/unix/log.cpp b/aegisub/libaegisub/unix/log.cpp
index 1813b5ef13673b6df23a02b484c0c63411c2ed69..a8e6270e9983c85b1d7682ccabe294e189e23f2a 100644
--- a/aegisub/libaegisub/unix/log.cpp
+++ b/aegisub/libaegisub/unix/log.cpp
@@ -18,6 +18,7 @@
 /// @brief Unix logging
 /// @ingroup libaegisub
 
+#include "config.h"
 
 #include <stdio.h>
 #include <time.h>
diff --git a/aegisub/libaegisub/unix/util.cpp b/aegisub/libaegisub/unix/util.cpp
index 691b796e3671c6e25abc538d83875246207a064d..c9215bf81470fb7edf42a77242aa3a7298923d59 100644
--- a/aegisub/libaegisub/unix/util.cpp
+++ b/aegisub/libaegisub/unix/util.cpp
@@ -18,16 +18,25 @@
 /// @brief Unix utility methods.
 /// @ingroup libaegisub unix
 
+#include "config.h"
+
+#include "libaegisub/util.h"
+
 #ifndef LAGI_PRE
 #include <stdarg.h>
 #include <stdio.h>
+#include <sys/statvfs.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#else
+#include <time.h>
+#endif
 
 #include <string>
 #include <fstream>
 #endif
 
 #include <string.h>
-#include "libaegisub/util.h"
 
 namespace agi {
 	namespace util {
@@ -35,12 +44,10 @@ namespace agi {
 
 const std::string DirName(const std::string& path) {
     if (path.find('/') == std::string::npos) {
-		const std::string cwd(".");
-		return cwd;
+		return ".";
 	}
 
-	const std::string stripped = path.substr(0, path.rfind("/")+1);
-	return stripped;
+	return path.substr(0, path.rfind("/")+1);
 }
 
 void Rename(const std::string& from, const std::string& to) {
diff --git a/aegisub/reporter/aegisub.h b/aegisub/reporter/aegisub.h
index ad628f093b4de39aaf73732cdf19b77acbbb83b9..f43bc9a04eef13819657062b949944008982ec17 100644
--- a/aegisub/reporter/aegisub.h
+++ b/aegisub/reporter/aegisub.h
@@ -19,6 +19,7 @@
 /// @ingroup base
 
 #ifndef R_PRECOMP
+#include <stdint.h>
 #endif
 
 #include <libaegisub/option.h>
diff --git a/aegisub/src/command/command.h b/aegisub/src/command/command.h
index 027394c12a544add50b17067020d8bc678ea37ee..c3ef2c4ca8b32e6918f0d29c01177270bf13e411 100644
--- a/aegisub/src/command/command.h
+++ b/aegisub/src/command/command.h
@@ -23,6 +23,7 @@
 #include <map>
 #include <string>
 
+#include <wx/bitmap.h>
 #include <wx/string.h>
 #endif
 
diff --git a/aegisub/src/command/edit.cpp b/aegisub/src/command/edit.cpp
index 8747b64b033493cf55ba69e1ffbe8483d5da2344..3db1252a9922d8ef7aaaf73d976facf9be836263 100644
--- a/aegisub/src/command/edit.cpp
+++ b/aegisub/src/command/edit.cpp
@@ -40,6 +40,8 @@
 
 #ifndef AGI_PRE
 #include <algorithm>
+
+#include <wx/clipbrd.h>
 #endif
 
 #include "command.h"
diff --git a/aegisub/src/dialog_fonts_collector.cpp b/aegisub/src/dialog_fonts_collector.cpp
index f3cde56b2e28f017b51d2dcb1d8b22974ec09949..af208b61d1fb52376fb8af655232bb959c3cbf81 100644
--- a/aegisub/src/dialog_fonts_collector.cpp
+++ b/aegisub/src/dialog_fonts_collector.cpp
@@ -41,8 +41,12 @@
 
 #ifndef AGI_PRE
 #include <wx/config.h>
+#include <wx/dirdlg.h>
+#include <wx/filedlg.h>
 #include <wx/filename.h>
 #include <wx/fontenum.h>
+#include <wx/msgdlg.h>
+#include <wx/sizer.h>
 #include <wx/wfstream.h>
 #include <wx/zipstrm.h>
 #endif
diff --git a/aegisub/src/dialog_kara_timing_copy.cpp b/aegisub/src/dialog_kara_timing_copy.cpp
index 57357c6ddcb7aa8db67fc3b8a1721c0876c7cdde..0281516914838d23babbe4fa7bbeb1bf56ba81f0 100644
--- a/aegisub/src/dialog_kara_timing_copy.cpp
+++ b/aegisub/src/dialog_kara_timing_copy.cpp
@@ -41,6 +41,11 @@
 #include <deque>
 #include <vector>
 
+#include <wx/dcclient.h>
+#include <wx/msgdlg.h>
+#include <wx/settings.h>
+#include <wx/sizer.h>
+#include <wx/stattext.h>
 #include <wx/string.h>
 #endif
 
diff --git a/aegisub/src/dialog_style_manager.cpp b/aegisub/src/dialog_style_manager.cpp
index 79a5be233ae5d9f18a8189210554c167d265cd07..f5b7f34f9bc65b1e74f9b61715ce855630e66076 100644
--- a/aegisub/src/dialog_style_manager.cpp
+++ b/aegisub/src/dialog_style_manager.cpp
@@ -40,6 +40,8 @@
 #include <wx/filedlg.h>
 #include <wx/filename.h>
 #include <wx/intl.h>
+#include <wx/msgdlg.h>
+#include <wx/textdlg.h>
 #include <wx/tokenzr.h>
 #include <wx/choicdlg.h> // Keep this last so wxUSE_CHOICEDLG is set.
 #endif
diff --git a/aegisub/src/dialog_timing_processor.cpp b/aegisub/src/dialog_timing_processor.cpp
index c0e98bf62628e00c1080f52409d811c85ee41b9a..9f5de31427b8c8a3612cec28cde96860bef0881a 100644
--- a/aegisub/src/dialog_timing_processor.cpp
+++ b/aegisub/src/dialog_timing_processor.cpp
@@ -38,6 +38,9 @@
 
 #ifndef AGI_PRE
 #include <algorithm>
+
+#include <wx/msgdlg.h>
+#include <wx/stattext.h>
 #endif
 
 #include "ass_dialogue.h"
diff --git a/aegisub/src/toolbar.cpp b/aegisub/src/toolbar.cpp
index 5993720493ff7d893f22df0bdd5fc3a17fac80ee..2b74e0e31925a83b942b450462e4199a26b83571 100644
--- a/aegisub/src/toolbar.cpp
+++ b/aegisub/src/toolbar.cpp
@@ -29,6 +29,7 @@
 #ifndef AGI_PRE
 #include <vector>
 
+#include <wx/frame.h>
 #include <wx/toolbar.h>
 #endif