diff --git a/client/CMusicHandler.cpp b/client/CMusicHandler.cpp
index 11325e0ac..9f699012c 100644
--- a/client/CMusicHandler.cpp
+++ b/client/CMusicHandler.cpp
@@ -183,7 +183,7 @@ void CSoundHandler::ambientStopSound(const AudioPath & soundId)
 	setChannelVolume(ambientChannels[soundId], volume);
 }
 
-double CSoundHandler::getSoundDuration(const AudioPath & sound)
+uint32_t CSoundHandler::getSoundDurationMilliseconds(const AudioPath & sound)
 {
 	if (!initialized || sound.empty())
 		return 0.0;
diff --git a/client/mainmenu/CPrologEpilogVideo.cpp b/client/mainmenu/CPrologEpilogVideo.cpp
index 45fc00f87..0cf8d0f99 100644
--- a/client/mainmenu/CPrologEpilogVideo.cpp
+++ b/client/mainmenu/CPrologEpilogVideo.cpp
@@ -49,13 +49,6 @@ CPrologEpilogVideo::CPrologEpilogVideo(CampaignScenarioPrologEpilog _spe, std::f
 void CPrologEpilogVideo::tick(uint32_t msPassed)
 {
 	elapsedTimeMilliseconds += msPassed;
-}
-
-void CPrologEpilogVideo::show(Canvas & to)
-{
-	to.drawColor(pos, Colors::BLACK);
-	//some videos are 800x600 in size while some are 800x400
-	CCS->videoh->update(pos.x, pos.y + (CCS->videoh->size().y == 400 ? 100 : 0), to.getInternalSurface(), true, false);
 
 	const uint32_t speed = (voiceDurationMilliseconds == 0) ? 100 : (voiceDurationMilliseconds / (text->textSize.y));
 
@@ -65,13 +58,17 @@ void CPrologEpilogVideo::show(Canvas & to)
 		elapsedTimeMilliseconds -= speed;
 		++positionCounter;
 	}
-	else
-	{
-		text->showAll(to); // blit text over video, if needed
+	else if(elapsedTimeMilliseconds > (voiceDurationMilliseconds == 0.0 ? 6000 : 3000) && voiceStopped) // pause after completed scrolling (longer for intros missing voice)
+		clickPressed(GH.getCursorPosition());
+}
 
-		if(elapsedTimeMilliseconds > (voiceDurationMilliseconds == 0.0 ? 6000 : 3000) && voiceStopped) // pause after completed scrolling (longer for intros missing voice)
-			clickPressed(GH.getCursorPosition());
-	}
+void CPrologEpilogVideo::show(Canvas & to)
+{
+	to.drawColor(pos, Colors::BLACK);
+	//some videos are 800x600 in size while some are 800x400
+	CCS->videoh->update(pos.x, pos.y + (CCS->videoh->size().y == 400 ? 100 : 0), to.getInternalSurface(), true, false);
+
+	text->showAll(to); // blit text over video, if needed
 }
 
 void CPrologEpilogVideo::clickPressed(const Point & cursorPosition)