diff --git a/aegisub/src/ass_karaoke.cpp b/aegisub/src/ass_karaoke.cpp
index 4bf6c4447113668406d839d8515307d9b7fe6f17..cd9c9375e5e796c917c430fe94dd659d0d252b77 100644
--- a/aegisub/src/ass_karaoke.cpp
+++ b/aegisub/src/ass_karaoke.cpp
@@ -40,7 +40,7 @@ wxString AssKaraoke::Syllable::GetText(bool k_tag) const {
 	wxString ret;
 
 	if (k_tag)
-		ret = wxString::Format("{%s%d}", tag_type, duration / 10);
+		ret = wxString::Format("{%s%d}", tag_type, (duration + 5) / 10);
 
 	size_t idx = 0;
 	for (std::map<size_t, wxString>::const_iterator ovr = ovr_tags.begin(); ovr != ovr_tags.end(); ++ovr) {
diff --git a/aegisub/src/audio_timing_karaoke.cpp b/aegisub/src/audio_timing_karaoke.cpp
index 07cd16e174421980139b39ad67290d19dc0350ad..9a91590f330bfb7a2615fe9a9a36ddcb0b9fbbc0 100644
--- a/aegisub/src/audio_timing_karaoke.cpp
+++ b/aegisub/src/audio_timing_karaoke.cpp
@@ -375,7 +375,7 @@ int AudioTimingControllerKaraoke::MoveMarker(KaraokeMarker *marker, int new_posi
 	marker->Move(new_position);
 
 	size_t syl = marker - &markers.front() + 1;
-	kara->SetStartTime(syl, new_position);
+	kara->SetStartTime(syl, (new_position + 5) / 10 * 10);
 
 	labels[syl - 1].range = TimeRange(labels[syl - 1].range.begin(), new_position);
 	labels[syl].range = TimeRange(new_position, labels[syl].range.end());