Index: src/Core/Banshee.Core/Banshee.Collection/ITrackInfo.cs
===================================================================
--- src/Core/Banshee.Core/Banshee.Collection/ITrackInfo.cs	(revision 4856)
+++ src/Core/Banshee.Core/Banshee.Collection/ITrackInfo.cs	(working copy)
@@ -40,6 +40,8 @@
         
         int TrackNumber { get; }
         int TrackCount { get; }
+        int DiscNumber { get; }
+        int DiscCount { get; }
         int Year { get; }
         int Rating { get; }
     }
Index: src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs
===================================================================
--- src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs	(revision 4856)
+++ src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs	(working copy)
@@ -116,7 +116,15 @@
              
             AddConversion ("track_number", Catalog.GetString ("Number"),  
                 delegate (ITrackInfo t, object r) {
-                    return String.Format ("{0:00}", t == null ? (int)r : t.TrackNumber);
+                    if (t == null) {
+                        return String.Format ("{0:00}", (int)r);
+                    }
+                    else if (t.DiscCount > 1) {
+                        return String.Format ("{0:0}-{1:00}", t.DiscNumber, t.TrackNumber);
+                    }
+                    else {
+                        return String.Format ("{0:00}", t.TrackNumber);
+                    }
             });
              
             AddConversion ("track_count_nz", Catalog.GetString ("Count (unsorted)"),  
