diff --git a/aegisub/src/audio_timing_karaoke.cpp b/aegisub/src/audio_timing_karaoke.cpp
index 9a91590f330bfb7a2615fe9a9a36ddcb0b9fbbc0..205d2c1e575f70e44e9aa6d401f80d268257c378 100644
--- a/aegisub/src/audio_timing_karaoke.cpp
+++ b/aegisub/src/audio_timing_karaoke.cpp
@@ -136,7 +136,7 @@ public:
 	void ModifyStart(int delta);
 	bool IsNearbyMarker(int ms, int sensitivity) const;
 	std::vector<AudioMarker*> OnLeftClick(int ms, bool, int sensitivity, int);
-	std::vector<AudioMarker*> OnRightClick(int, bool, int, int) { return std::vector<AudioMarker*>(); }
+	std::vector<AudioMarker*> OnRightClick(int ms, bool, int, int);
 	void OnMarkerDrag(std::vector<AudioMarker*> const& marker, int new_position, int);
 
 	AudioTimingControllerKaraoke(agi::Context *c, AssKaraoke *kara, agi::signal::Connection& file_changed);
@@ -362,6 +362,16 @@ std::vector<AudioMarker*> AudioTimingControllerKaraoke::OnLeftClick(int ms, bool
 	return std::vector<AudioMarker*>();
 }
 
+std::vector<AudioMarker*> AudioTimingControllerKaraoke::OnRightClick(int ms, bool, int, int) {
+	cur_syl = distance(markers.begin(), lower_bound(markers.begin(), markers.end(), ms));
+
+	AnnounceUpdatedPrimaryRange();
+	AnnounceUpdatedStyleRanges();
+	c->audioController->PlayPrimaryRange();
+
+	return std::vector<AudioMarker*>();
+}
+
 int AudioTimingControllerKaraoke::MoveMarker(KaraokeMarker *marker, int new_position) {
 	// No rearranging of syllables allowed
 	new_position = mid(