diff --git a/aegisub/src/audio_karaoke.cpp b/aegisub/src/audio_karaoke.cpp
index a88fb914d4b511613a90c2714cdde14389938efe..2acd0536f89e5277950a8561526e7d9a0dba0892 100644
--- a/aegisub/src/audio_karaoke.cpp
+++ b/aegisub/src/audio_karaoke.cpp
@@ -95,7 +95,7 @@ AudioKaraoke::AudioKaraoke(wxWindow *parent, agi::Context *c)
 	split_font.SetFaceName(OPT_GET("Audio/Karaoke/Font Face")->GetString());
 	split_font.SetPointSize(OPT_GET("Audio/Karaoke/Font Size")->GetInt());
 
-	Bind(wxEVT_SIZE, bind(&AudioKaraoke::Refresh, this, false, (const wxRect*)0));
+	split_area->Bind(wxEVT_SIZE, &AudioKaraoke::OnSize, this);
 	split_area->Bind(wxEVT_PAINT, &AudioKaraoke::OnPaint, this);
 	split_area->Bind(wxEVT_LEFT_DOWN, &AudioKaraoke::OnMouse, this);
 	split_area->Bind(wxEVT_LEFT_UP, &AudioKaraoke::OnMouse, this);
@@ -153,6 +153,11 @@ void AudioKaraoke::SetEnabled(bool en) {
 	}
 }
 
+void AudioKaraoke::OnSize(wxSizeEvent &evt) {
+	RenderText();
+	Refresh(false);
+}
+
 void AudioKaraoke::OnPaint(wxPaintEvent &) {
 	int w, h;
 	split_area->GetClientSize(&w, &h);
diff --git a/aegisub/src/audio_karaoke.h b/aegisub/src/audio_karaoke.h
index 3ec06b46509d9c9487275e1e44bddb5c5e1f8f6d..014eff65d54b12999ff6c42ddce052741a6410a1 100644
--- a/aegisub/src/audio_karaoke.h
+++ b/aegisub/src/audio_karaoke.h
@@ -138,6 +138,7 @@ class AudioKaraoke : public wxWindow, private SelectionListener<AssDialogue> {
 	void OnFileChanged(int type);
 	void OnMouse(wxMouseEvent &event);
 	void OnPaint(wxPaintEvent &event);
+	void OnSize(wxSizeEvent &event);
 	void OnSelectedSetChanged(Selection const&, Selection const&) { }
 	void OnAudioOpened();
 	void OnAudioClosed();