Index: src/Libraries/Hyena/Hyena/DateTimeUtil.cs
===================================================================
--- src/Libraries/Hyena/Hyena/DateTimeUtil.cs	(revision 4375)
+++ src/Libraries/Hyena/Hyena/DateTimeUtil.cs	(working copy)
@@ -56,9 +56,17 @@
         }
 
         public static string FormatDuration (long time) {
-            return (time > 3600 ? 
-                    String.Format ("{0}:{1:00}:{2:00}", time / 3600, (time / 60) % 60, time % 60) :
-                    String.Format ("{0}:{1:00}", time / 60, time % 60));
+            return FormatDuration (TimeSpan.FromSeconds (time));
         }
+        
+        public static string FormatDuration (TimeSpan time) {
+            return FormatDuration (time.Hours, time.Minutes, time.Seconds);
+        }
+        
+        public static string FormatDuration (int hours, int minutes, int seconds) {
+            return (hours > 0 ? 
+                    String.Format ("{0}:{1:00}:{2:00}", hours, minutes, seconds) :
+                    String.Format ("{0}:{1:00}", minutes, seconds));
+        }
     }
 }
Index: src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs
===================================================================
--- src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs	(revision 4375)
+++ src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs	(working copy)
@@ -44,6 +44,7 @@
 using Banshee.Sources;
 using Banshee.Collection.Database;
 
+using Hyena;
 using Hyena.Gui;
 using Hyena.Widgets;
 
@@ -311,8 +312,7 @@
             (Glade["Title"] as Entry).Text = track.TrackTitle;
             (Glade["Genre"] as ComboBoxEntry).Entry.Text = track.Genre;
             
-            (Glade["DurationLabel"] as Label).Text = String.Format ("{0}:{1}", 
-                track.Track.Duration.Minutes, (track.Track.Duration.Seconds).ToString ("00"));
+            (Glade["DurationLabel"] as Label).Text = DateTimeUtil.FormatDuration (track.Track.Duration);
             (Glade["PlayCountLabel"] as Label).Text = track.Track.PlayCount.ToString ();
             (Glade["LastPlayedLabel"] as Label).Text = track.Track.LastPlayed == DateTime.MinValue ?
                 Catalog.GetString ("Never played") : track.Track.LastPlayed.ToString ();
