diff --git a/aegisub/audio_player_alsa.h b/aegisub/audio_player_alsa.h
index 1cd796374468ee5fb00573ffc30b151965cdfd96..5efc1e353c1e7b30f6ea48ec5bac93a8606b723f 100644
--- a/aegisub/audio_player_alsa.h
+++ b/aegisub/audio_player_alsa.h
@@ -109,7 +109,6 @@ public:
 class AlsaPlayerFactory : public AudioPlayerFactory {
 public:
 	AudioPlayer *CreatePlayer() { return new AlsaPlayer(); }
-	AlsaPlayerFactory() : AudioPlayerFactory(_T("alsa")) {}
 };
 
 #endif
diff --git a/aegisub/audio_player_openal.h b/aegisub/audio_player_openal.h
index 5d6aa2245669aad7f5fc1db8a2c74955271a79b3..67ec21f59ad4b7ac57723c09b7094addbd241cc0 100644
--- a/aegisub/audio_player_openal.h
+++ b/aegisub/audio_player_openal.h
@@ -122,7 +122,6 @@ public:
 class OpenALPlayerFactory : public AudioPlayerFactory {
 public:
 	AudioPlayer *CreatePlayer() { return new OpenALPlayer(); }
-	OpenALPlayerFactory() : AudioPlayerFactory(_T("openal")) {}
 };
 
 #endif
diff --git a/aegisub/audio_player_portaudio.h b/aegisub/audio_player_portaudio.h
index b08445c15fc280ce807bd70e6974845ddc4eebb7..7f723390c4f5c19f4fce4b4e8e7c655d746a02d6 100644
--- a/aegisub/audio_player_portaudio.h
+++ b/aegisub/audio_player_portaudio.h
@@ -103,7 +103,6 @@ public:
 class PortAudioPlayerFactory : public AudioPlayerFactory {
 public:
 	AudioPlayer *CreatePlayer() { return new PortAudioPlayer(); }
-	PortAudioPlayerFactory() : AudioPlayerFactory(_T("portaudio")) {}
 };
 
 #endif
diff --git a/aegisub/audio_player_pulse.h b/aegisub/audio_player_pulse.h
index 97b50779d47c97ef0da12abf12fd6aff605d9569..22031f08f686a0725d253c1ad2415bd91b05a5ce 100644
--- a/aegisub/audio_player_pulse.h
+++ b/aegisub/audio_player_pulse.h
@@ -124,7 +124,6 @@ public:
 class PulseAudioPlayerFactory : public AudioPlayerFactory {
 public:
 	AudioPlayer *CreatePlayer() { return new PulseAudioPlayer(); }
-	PulseAudioPlayerFactory() : AudioPlayerFactory(_T("pulse")) {}
 };
 
 #endif
diff --git a/aegisub/audio_provider_lavc.h b/aegisub/audio_provider_lavc.h
index 15d50778f2b15109d4f1ea015bc880e7cd75337b..45efd23574d913e607a05109745a8abde1d2ff71 100644
--- a/aegisub/audio_provider_lavc.h
+++ b/aegisub/audio_provider_lavc.h
@@ -89,7 +89,6 @@ public:
 class LAVCAudioProviderFactory : public AudioProviderFactory {
 public:
 	AudioProvider *CreateProvider(wxString file) { return new LAVCAudioProvider(file); }
-	LAVCAudioProviderFactory() : AudioProviderFactory(_T("lavc")) {}
 };
 
 #endif
diff --git a/aegisub/factory.h b/aegisub/factory.h
deleted file mode 100644
index c79a36ce45153511e926ebda8c0094f6025d4880..0000000000000000000000000000000000000000
--- a/aegisub/factory.h
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright (c) 2007, Rodrigo Braz Monteiro
-// 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.
-//   * Neither the name of the Aegisub Group nor the names of its contributors
-//     may be used to endorse or promote products derived from this software
-//     without specific prior written permission.
-//
-// 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.
-//
-// -----------------------------------------------------------------------------
-//
-// AEGISUB
-//
-// Website: http://aegisub.cellosoft.com
-// Contact: mailto:zeratul@cellosoft.com
-//
-
-
-#pragma once
-
-
-///////////
-// Headers
-#include <map>
-#include <wx/string.h>
-#include <wx/arrstr.h>
-
-
-/////////////////
-// Factory class
-template <class T>
-class AegisubFactory {
-protected:
-	// Static map of all factories
-	static std::map<wxString,T*> *factories;
-
-	// Register one factory type (with possible subtypes)
-	void RegisterFactory(wxString name, wxArrayString subTypes=wxArrayString()) {
-		// Create factories if it doesn't exist
-		if (factories == NULL) factories = new std::map<wxString,T*>;
-
-		// Prepare subtypes
-		if (subTypes.GetCount() == 0) subTypes.Add(_T(""));
-		else {
-			for (unsigned int i=0;i<subTypes.GetCount();i++) {
-				subTypes[i] = _T("/") + subTypes[i];
-			}
-		}
-
-		// Insert each subtype
-		for (unsigned int i=0;i<subTypes.GetCount();i++) {
-			factories->insert(std::make_pair(name.Lower() + subTypes[i],(T*)this));
-		}
-	}
-
-	// Get a factory with name
-	static T *GetFactory(wxString name) {
-		// No factories
-		if (factories == NULL) {
-			factories = new std::map<wxString,T*>;
-			return NULL;
-		}
-
-		// Search for factory that matches
-		typename std::map<wxString,T*>::iterator cur;
-		for (cur = factories->begin();cur != factories->end();cur++) {
-			if (cur->first.StartsWith(name)) return cur->second;
-		}
-
-		// None found
-		return NULL;
-	}
-
-public:
-	// Virtual destructor
-	virtual ~AegisubFactory() {}
-
-	// Get list of all factories, with favourite as first
-	static wxArrayString GetFactoryList(wxString favourite=_T("")) {
-		if (factories == NULL) factories = new std::map<wxString,T*>;
-		wxArrayString list;
-		favourite = favourite.Lower();
-		for (typename std::map<wxString,T*>::iterator cur=factories->begin();cur!=factories->end();cur++) {
-			if (cur->first == favourite) list.Insert(cur->first,0);
-			else list.Add(cur->first);
-		}
-		return list;
-	}
-};
diff --git a/aegisub/subtitles_provider_libass.h b/aegisub/subtitles_provider_libass.h
index 0cdb0ccc39146a62d733d682f790f88b9db6685c..201b943246964fca7c2a4af27a2e090c0a6517e7 100644
--- a/aegisub/subtitles_provider_libass.h
+++ b/aegisub/subtitles_provider_libass.h
@@ -76,7 +76,6 @@ public:
 class LibassSubtitlesProviderFactory : public SubtitlesProviderFactory {
 public:
 	SubtitlesProvider *CreateProvider(wxString subType=_T("")) { return new LibassSubtitlesProvider(); }
-	LibassSubtitlesProviderFactory() : SubtitlesProviderFactory(_T("libass")) {}
 };
 
 #endif
diff --git a/aegisub/video_provider_lavc.h b/aegisub/video_provider_lavc.h
index 82ff78dd922907fff696aa9bfc23c9937b0b6e72..45951b26b510f55bbf115ec55d3ee7f8eb9f1586 100644
--- a/aegisub/video_provider_lavc.h
+++ b/aegisub/video_provider_lavc.h
@@ -117,7 +117,6 @@ public:
 class LAVCVideoProviderFactory : public VideoProviderFactory {
 public:
 	VideoProvider *CreateProvider(wxString video,double fps=0.0) { return new LAVCVideoProvider(video,fps); }
-	LAVCVideoProviderFactory() : VideoProviderFactory(_T("ffmpeg")) {}
 };
 
 #endif