diff --git a/app/helpers/time_helper.rb b/app/helpers/time_helper.rb
index 8cb82c2d5cccb0e3025e4668694b70ec42e019d4..1926f03af07f49d47a296dd3573505cfdb04e396 100644
--- a/app/helpers/time_helper.rb
+++ b/app/helpers/time_helper.rb
@@ -1,14 +1,4 @@
 module TimeHelper
-  def duration_in_words(finished_at, started_at)
-    if finished_at && started_at
-      interval_in_seconds = finished_at.to_i - started_at.to_i
-    elsif started_at
-      interval_in_seconds = Time.now.to_i - started_at.to_i
-    end
-
-    time_interval_in_words(interval_in_seconds)
-  end
-
   def time_interval_in_words(interval_in_seconds)
     minutes = interval_in_seconds / 60
     seconds = interval_in_seconds - minutes * 60
@@ -25,9 +15,19 @@ module TimeHelper
   end
 
   def duration_in_numbers(finished_at, started_at)
-    diff_in_seconds = finished_at.to_i - started_at.to_i
-    time_format = diff_in_seconds < 1.hour ? "%M:%S" : "%H:%M:%S"
+    interval = interval_in_seconds(started_at, finished_at)
+    time_format = interval < 1.hour ? "%M:%S" : "%H:%M:%S"
 
-    Time.at(diff_in_seconds).utc.strftime(time_format)
+    Time.at(interval).utc.strftime(time_format)
+  end
+
+  private
+
+  def interval_in_seconds(started_at, finished_at = nil)
+    if started_at && finished_at
+      finished_at.to_i - started_at.to_i
+    elsif started_at
+      Time.now.to_i - started_at.to_i
+    end
   end
 end
diff --git a/app/views/projects/builds/_sidebar.html.haml b/app/views/projects/builds/_sidebar.html.haml
index cab21f0cf19568bad1443c6cc5d64d5902cfd01e..960d43039f49d39cf94b7b76092c75b558591e61 100644
--- a/app/views/projects/builds/_sidebar.html.haml
+++ b/app/views/projects/builds/_sidebar.html.haml
@@ -49,7 +49,7 @@
     - if @build.duration
       %p.build-detail-row
         %span.build-light-text Duration:
-        #{duration_in_words(@build.finished_at, @build.started_at)}
+        = time_interval_in_words(@build.duration)
     - if @build.finished_at
       %p.build-detail-row
         %span.build-light-text Finished:
diff --git a/app/views/projects/generic_commit_statuses/_generic_commit_status.html.haml b/app/views/projects/generic_commit_statuses/_generic_commit_status.html.haml
index 542827b2f1542db5f27be251b453bf5580cd84c2..331dc1fcc29f1165b7bfbadaa039d8ff9fbbc415 100644
--- a/app/views/projects/generic_commit_statuses/_generic_commit_status.html.haml
+++ b/app/views/projects/generic_commit_statuses/_generic_commit_status.html.haml
@@ -51,7 +51,7 @@
   %td.duration
     - if generic_commit_status.duration
       = icon("clock-o")
-      #{duration_in_words(generic_commit_status.finished_at, generic_commit_status.started_at)}
+      = time_interval_in_words(generic_commit_status.duration)
 
   %td.timestamp
     - if generic_commit_status.finished_at
diff --git a/spec/helpers/time_helper_spec.rb b/spec/helpers/time_helper_spec.rb
index 3f62527c5bbc1e756e69b89ba376d6e198530f04..413ead944b9ab422f0be56c0bb3d4636380d138d 100644
--- a/spec/helpers/time_helper_spec.rb
+++ b/spec/helpers/time_helper_spec.rb
@@ -1,7 +1,7 @@
 require 'spec_helper'
 
 describe TimeHelper do
-  describe "#duration_in_words" do
+  describe "#time_interval_in_words" do
     it "returns minutes and seconds" do
       intervals_in_words = {
         100 => "1 minute 40 seconds",
@@ -11,26 +11,23 @@ describe TimeHelper do
       }
 
       intervals_in_words.each do |interval, expectation|
-        expect(duration_in_words(Time.now + interval, Time.now)).to eq(expectation)
+        expect(time_interval_in_words(interval)).to eq(expectation)
       end
     end
-
-    it "calculates interval from now if there is no finished_at" do
-      expect(duration_in_words(nil, Time.now - 5)).to eq("5 seconds")
-    end
   end
 
-  describe "#time_interval_in_words" do
+  describe "#duration_in_numbers" do
     it "returns minutes and seconds" do
-      intervals_in_words = {
-        100 => "1 minute 40 seconds",
-        121 => "2 minutes 1 second",
-        3721 => "62 minutes 1 second",
-        0 => "0 seconds"
+      duration_in_numbers = {
+        [100, 0] => "01:40",
+        [121, 0] => "02:01",
+        [3721, 0] => "01:02:01",
+        [0, 0] => "00:00",
+        [nil, Time.now.to_i - 42] => "00:42"
       }
 
-      intervals_in_words.each do |interval, expectation|
-        expect(time_interval_in_words(interval)).to eq(expectation)
+      duration_in_numbers.each do |interval, expectation|
+        expect(duration_in_numbers(*interval)).to eq(expectation)
       end
     end
   end