diff --git a/aegisub/src/video_display.cpp b/aegisub/src/video_display.cpp
index 97aa08d16de3ec054e1dd36efe212cb3f816c20f..2941c8d87146f81c74b2bf6000ca497aabf57c17 100644
--- a/aegisub/src/video_display.cpp
+++ b/aegisub/src/video_display.cpp
@@ -377,7 +377,9 @@ void VideoDisplay::OnKeyDown(wxKeyEvent &event) {
 
 void VideoDisplay::SetZoom(double value) {
 	zoomValue = std::max(value, .125);
-	zoomBox->SetSelection(value / .125 - 1);
+	size_t selIndex = value / .125 - 1;
+	if (selIndex < zoomBox->GetCount())
+		zoomBox->SetSelection(selIndex);
 	zoomBox->ChangeValue(wxString::Format("%g%%", zoomValue * 100.));
 	UpdateSize();
 }