diff --git a/.gitmodules b/.gitmodules
index d3168c5fce6412baf2f278c1c6548fb7a33bbcbd..4032d9dc68c8285425b6ebd372b5a947ca87dbdd 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,56 +1,56 @@
-[submodule "deps/fribidi"]
-	path = deps/fribidi
+[submodule "aegisub/vendor/fribidi"]
+	path = aegisub/vendor/fribidi
 	url = git://anongit.freedesktop.org/fribidi/fribidi
 	ignore = dirty
-[submodule "deps/freetype2"]
-	path = deps/freetype2
+[submodule "aegisub/vendor/freetype2"]
+	path = aegisub/vendor/freetype2
 	url = git://git.sv.nongnu.org/freetype/freetype2.git
 	ignore = dirty
-[submodule "deps/zlib"]
-	path = deps/zlib
+[submodule "aegisub/vendor/zlib"]
+	path = aegisub/vendor/zlib
 	url = git://github.com/madler/zlib.git
 	ignore = dirty
-[submodule "deps/wxWidgets"]
-	path = deps/wxWidgets
+[submodule "aegisub/vendor/wxWidgets"]
+	path = aegisub/vendor/wxWidgets
 	url = git://github.com/wxWidgets/wxWidgets.git
 	ignore = dirty
-[submodule "deps/googletest"]
-	path = deps/googletest
+[submodule "aegisub/vendor/googletest"]
+	path = aegisub/vendor/googletest
 	url = git://github.com/svn2github/googletest.git
 	ignore = dirty
-[submodule "deps/ffmpeg"]
-	path = deps/ffmpeg
+[submodule "aegisub/vendor/ffmpeg"]
+	path = aegisub/vendor/ffmpeg
 	url = git://source.ffmpeg.org/ffmpeg.git
 	ignore = dirty
-[submodule "deps/ffms2"]
-	path = deps/ffms2
+[submodule "aegisub/vendor/ffms2"]
+	path = aegisub/vendor/ffms2
 	url = git://github.com/FFMS/ffms2.git
 	branch = master
 	ignore = dirty
-[submodule "deps/fontconfig"]
-	path = deps/fontconfig
+[submodule "aegisub/vendor/fontconfig"]
+	path = aegisub/vendor/fontconfig
 	url = git://github.com/tgoyne/fontconfig.git
 	branch = msvc
 	ignore = dirty
-[submodule "deps/libass"]
-	path = deps/libass
+[submodule "aegisub/vendor/libass"]
+	path = aegisub/vendor/libass
 	url = git://github.com/libass/libass.git
 	branch = master
-[submodule "deps/icu"]
-	path = deps/icu
+[submodule "aegisub/vendor/icu"]
+	path = aegisub/vendor/icu
 	url = git://github.com/sillsdev/icu4c.git
 	branch = trunk
 	ignore = dirty
-[submodule "deps/boost"]
-	path = deps/boost
+[submodule "aegisub/vendor/boost"]
+	path = aegisub/vendor/boost
 	url = https://github.com/boostorg/boost.git
 	ignore = dirty
-[submodule "deps/lua"]
-	path = deps/lua
+[submodule "aegisub/vendor/lua"]
+	path = aegisub/vendor/lua
 	url = git://github.com/ittner/Lua-experimentation.git
 	branch = lua51
 	ignore = dirty
-[submodule "deps/fftw"]
-	path = deps/fftw
+[submodule "aegisub/vendor/fftw"]
+	path = aegisub/vendor/fftw
 	url = https://github.com/Aegisub/fftw3.git
 	ignore = dirty
diff --git a/aegisub/build/DefaultConfiguration.props b/aegisub/build/DefaultConfiguration.props
index 18c1ad7709e190e975389078a32c35c8b2ad12e5..90a44d9e5d8a5b7c92cad48154750ea0ecd061a0 100644
--- a/aegisub/build/DefaultConfiguration.props
+++ b/aegisub/build/DefaultConfiguration.props
@@ -50,18 +50,18 @@
     <UpdateCheckerServer>updates.aegisub.org</UpdateCheckerServer>
     <UpdateCheckerURL>/trunk</UpdateCheckerURL>
 
-    <BoostPath>..\..\..\deps\boost</BoostPath>
-    <FfmsSrcDir>..\..\..\deps\ffms2</FfmsSrcDir>
-    <FfmpegSrcDir>..\..\..\deps\ffmpeg</FfmpegSrcDir>
-    <FftwSrcDir>..\..\..\deps\fftw</FftwSrcDir>
-    <Freetype2SrcDir>..\..\..\deps\freetype2</Freetype2SrcDir>
-    <FribidiSrcDir>..\..\..\deps\fribidi</FribidiSrcDir>
-    <FontconfigSrcDir>..\..\..\deps\fontconfig</FontconfigSrcDir>
-    <GtestSrcDir>..\..\..\deps\googletest</GtestSrcDir>
-    <IcuSrcDir>..\..\..\deps\icu\source</IcuSrcDir>
-    <LibassSrcDir>..\..\..\deps\libass</LibassSrcDir>
-    <WxSrcDir>..\..\..\deps\wxWidgets</WxSrcDir>
-    <ZlibSrcDir>..\..\..\deps\zlib</ZlibSrcDir>
+    <BoostPath>..\..\vendor\boost</BoostPath>
+    <FfmsSrcDir>..\..\vendor\ffms2</FfmsSrcDir>
+    <FfmpegSrcDir>..\..\vendor\ffmpeg</FfmpegSrcDir>
+    <FftwSrcDir>..\..\vendor\fftw</FftwSrcDir>
+    <Freetype2SrcDir>..\..\vendor\freetype2</Freetype2SrcDir>
+    <FribidiSrcDir>..\..\vendor\fribidi</FribidiSrcDir>
+    <FontconfigSrcDir>..\..\vendor\fontconfig</FontconfigSrcDir>
+    <GtestSrcDir>..\..\vendor\googletest</GtestSrcDir>
+    <IcuSrcDir>..\..\vendor\icu\source</IcuSrcDir>
+    <LibassSrcDir>..\..\vendor\libass</LibassSrcDir>
+    <WxSrcDir>..\..\vendor\wxWidgets</WxSrcDir>
+    <ZlibSrcDir>..\..\vendor\zlib</ZlibSrcDir>
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(MsysBasePath)' == ''">
diff --git a/aegisub/build/icu/icu.vcxproj b/aegisub/build/icu/icu.vcxproj
index f90ea328b0cfe40cb099794df840fbb3c22b3607..151375acef2dc16c7619f096c9e23919d369c899 100644
--- a/aegisub/build/icu/icu.vcxproj
+++ b/aegisub/build/icu/icu.vcxproj
@@ -85,8 +85,8 @@
     <!-- Includes Break Iterator and Collator data only -->
     <DownloadTgzFile
       Url="http://www.aegisub.org/~plorkyeran/icudt52l.dat.tgz"
-      Destination="$(MSBuildThisFileDirectory)..\..\..\deps\icu\source\data\in"
-      OutputFile="$(MSBuildThisFileDirectory)..\..\..\deps\icu\source\data\in\icudt52l.dat"
+      Destination="$(MSBuildThisFileDirectory)..\..\vendor\icu\source\data\in"
+      OutputFile="$(MSBuildThisFileDirectory)..\..\vendor\icu\source\data\in\icudt52l.dat"
       Hash="b611a32e857ab4474e3c0118bd09b0958026fe1d"
       />
 
diff --git a/aegisub/build/lua51/lua51.vcxproj b/aegisub/build/lua51/lua51.vcxproj
index 68dbf05e38deab649d19004995e1409351b46e45..6c918a4cee016a02fb45588075b114f1dd13df2c 100644
--- a/aegisub/build/lua51/lua51.vcxproj
+++ b/aegisub/build/lua51/lua51.vcxproj
@@ -8,7 +8,7 @@
   <!-- Aegisub project configuration -->
   <PropertyGroup Label="AegisubConfiguration">
     <AegisubProjectType>lib</AegisubProjectType>
-    <SrcDir>..\..\..\deps\lua\src\</SrcDir>
+    <SrcDir>..\..\vendor\lua\src\</SrcDir>
   </PropertyGroup>
   <ImportGroup Label="PropertySheets">
     <Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
diff --git a/aegisub/vendor/boost b/aegisub/vendor/boost
new file mode 160000
index 0000000000000000000000000000000000000000..db6013d20a28dd0d96a8c21146e33f17788c4881
--- /dev/null
+++ b/aegisub/vendor/boost
@@ -0,0 +1 @@
+Subproject commit db6013d20a28dd0d96a8c21146e33f17788c4881
diff --git a/aegisub/vendor/ffmpeg b/aegisub/vendor/ffmpeg
new file mode 160000
index 0000000000000000000000000000000000000000..52b6db848d41ee811b9368a3df8918f7310bed31
--- /dev/null
+++ b/aegisub/vendor/ffmpeg
@@ -0,0 +1 @@
+Subproject commit 52b6db848d41ee811b9368a3df8918f7310bed31
diff --git a/deps/ffms2 b/aegisub/vendor/ffms2
similarity index 100%
rename from deps/ffms2
rename to aegisub/vendor/ffms2
diff --git a/deps/fftw b/aegisub/vendor/fftw
similarity index 100%
rename from deps/fftw
rename to aegisub/vendor/fftw
diff --git a/deps/fontconfig b/aegisub/vendor/fontconfig
similarity index 100%
rename from deps/fontconfig
rename to aegisub/vendor/fontconfig
diff --git a/deps/freetype2 b/aegisub/vendor/freetype2
similarity index 100%
rename from deps/freetype2
rename to aegisub/vendor/freetype2
diff --git a/deps/fribidi b/aegisub/vendor/fribidi
similarity index 100%
rename from deps/fribidi
rename to aegisub/vendor/fribidi
diff --git a/aegisub/vendor/googletest b/aegisub/vendor/googletest
new file mode 160000
index 0000000000000000000000000000000000000000..cc0116f14aa8ad9ab76226d082a96b1005221816
--- /dev/null
+++ b/aegisub/vendor/googletest
@@ -0,0 +1 @@
+Subproject commit cc0116f14aa8ad9ab76226d082a96b1005221816
diff --git a/deps/icu b/aegisub/vendor/icu
similarity index 100%
rename from deps/icu
rename to aegisub/vendor/icu
diff --git a/aegisub/vendor/libass b/aegisub/vendor/libass
new file mode 160000
index 0000000000000000000000000000000000000000..817bb3b1e192b94e0fc27ede617dbb2fe534d3ef
--- /dev/null
+++ b/aegisub/vendor/libass
@@ -0,0 +1 @@
+Subproject commit 817bb3b1e192b94e0fc27ede617dbb2fe534d3ef
diff --git a/aegisub/vendor/lua b/aegisub/vendor/lua
new file mode 160000
index 0000000000000000000000000000000000000000..4997ebeaee85a1193d40820f5695d2555a30c39f
--- /dev/null
+++ b/aegisub/vendor/lua
@@ -0,0 +1 @@
+Subproject commit 4997ebeaee85a1193d40820f5695d2555a30c39f
diff --git a/aegisub/vendor/wxWidgets b/aegisub/vendor/wxWidgets
new file mode 160000
index 0000000000000000000000000000000000000000..de20880064f76e8742397cb4cc73db9d25edab50
--- /dev/null
+++ b/aegisub/vendor/wxWidgets
@@ -0,0 +1 @@
+Subproject commit de20880064f76e8742397cb4cc73db9d25edab50
diff --git a/deps/zlib b/aegisub/vendor/zlib
similarity index 100%
rename from deps/zlib
rename to aegisub/vendor/zlib
diff --git a/deps/boost b/deps/boost
deleted file mode 160000
index 614aac8fef2a0551610f72e5c4a61085c8c06e35..0000000000000000000000000000000000000000
--- a/deps/boost
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 614aac8fef2a0551610f72e5c4a61085c8c06e35
diff --git a/deps/ffmpeg b/deps/ffmpeg
deleted file mode 160000
index 8dfd0e62f5d32db66ebbe3e13144ee5720bad585..0000000000000000000000000000000000000000
--- a/deps/ffmpeg
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8dfd0e62f5d32db66ebbe3e13144ee5720bad585
diff --git a/deps/googletest b/deps/googletest
deleted file mode 160000
index b3d0b4ea4ab877a355e79dd0de704577811fff0f..0000000000000000000000000000000000000000
--- a/deps/googletest
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b3d0b4ea4ab877a355e79dd0de704577811fff0f
diff --git a/deps/libass b/deps/libass
deleted file mode 160000
index 98707694069b6f1808eef5e1d23bc63fb575e067..0000000000000000000000000000000000000000
--- a/deps/libass
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 98707694069b6f1808eef5e1d23bc63fb575e067
diff --git a/deps/lua b/deps/lua
deleted file mode 160000
index 49a7bfe8149a24ba550ab46c8e0b29f05e37b11a..0000000000000000000000000000000000000000
--- a/deps/lua
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 49a7bfe8149a24ba550ab46c8e0b29f05e37b11a
diff --git a/deps/wxWidgets b/deps/wxWidgets
deleted file mode 160000
index 96430b3f3d40c483f49ae419babf6c2e5255ac0a..0000000000000000000000000000000000000000
--- a/deps/wxWidgets
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 96430b3f3d40c483f49ae419babf6c2e5255ac0a