--- a/src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs
+++ b/src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs
@@ -39,6 +39,9 @@
     {
         public static readonly string UnknownAlbumTitle = Catalog.GetString ("Unknown Album");
 
+        private string tv_show;
+        private string tv_show_sort;
+        private string tv_network;
         private string title;
         private string title_sort;
         private string artist_name;
@@ -65,6 +68,21 @@
         public virtual string ArtistNameSort {
             get { return artist_name_sort; }
             set { artist_name_sort = String.IsNullOrEmpty (value) ? null : value; }
+        }
+
+        public virtual string TVShow {
+            get { return tv_show; }
+            set { tv_show = value; }
+        }
+
+        public virtual string TVShowSort {
+            get { return tv_show_sort; }
+            set { tv_show_sort = value; }
+        }
+
+        public virtual string TVNetwork {
+            get { return tv_network; }
+            set { tv_network = value; }
         }
 
         public virtual string Title {
--- a/src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs
+++ b/src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs
@@ -68,7 +68,9 @@
         private string album_artist;
         private string album_artist_sort;
         private string track_title_sort;
+        private string tv_show_sort;
 
+        private int episode_count;
         private int track_count;
         private int disc_count;
 
@@ -191,6 +193,35 @@
         public virtual string AlbumArtistSort {
             get { return album_artist_sort; }
             set { album_artist_sort = String.IsNullOrEmpty (value) ? null : value; }
+        }
+        [Exportable (ExportName = "tvshow")]
+        public virtual string TvShow { get; set; }
+
+        [Exportable (ExportName = "tvshowsort")]
+        public virtual string TvShowSort {
+            get { return tv_show_sort; }
+            set { tv_show_sort = String.IsNullOrEmpty (value) ? null : value; }
+        }
+
+        [Exportable (ExportName = "tvnetwork")]
+        public virtual string TvNetwork { get; set; }
+
+        [Exportable (ExportName = "director")]
+        public virtual string Director { get; set; }
+
+        [Exportable (ExportName = "writer")]
+        public virtual string Writer { get; set; }
+		
+        [Exportable]
+        public virtual int SeasonNumber { get; set; }
+
+        [Exportable]
+        public virtual int EpisodeNumber { get; set; }
+
+        [Exportable]
+        public virtual int EpisodeCount {
+            get { return (episode_count != 0 && episode_count < EpisodeNumber) ? EpisodeNumber : episode_count; }
+            set { episode_count = value; }
         }
 
         [Exportable]
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs
@@ -228,6 +228,24 @@
             set { base.TitleSort = value; }
         }
 
+        [DatabaseColumn]
+        public override string TVShow {
+            get { return base.TVShow; }
+            set { base.TVShow = value; }
+        }
+
+        [DatabaseColumn]
+        public override string TVShowSort {
+            get { return base.TVShowSort; }
+            set { base.TVShowSort = value; }
+        }
+
+        [DatabaseColumn]
+        public override string TVNetwork {
+            get { return base.TVNetwork; }
+            set { base.TVNetwork = value; }
+        }
+
         [DatabaseColumn(Select = false)]
         internal byte[] TitleSortKey {
             get { return Hyena.StringUtil.SortKey (TitleSort ?? DisplayTitle); }
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
@@ -371,6 +371,56 @@
                 album_changed = true;
             }
         }
+        [DatabaseColumn ("TVShow")]
+        // Maybe should be in Album (or a new table)
+        public override string TvShow {
+            get { return base.TvShow; }
+            set { base.TvShow = value; }
+        }
+        // Maybe should be in Album (or a new table)
+        [DatabaseColumn ("TVShowSort")]
+        public override string TvShowSort {
+            get { return base.TvShowSort; }
+            set { base.TvShowSort = value; }
+        }
+        // Maybe should be in Album (or a new table)
+        [DatabaseColumn ("TVNetwork")]
+        public override string TvNetwork {
+            get { return base.TvNetwork; }
+            set { base.TvNetwork = value; }
+        }
+
+        // TODO: This really ought to be a list of directors...
+        [DatabaseColumn]
+        public override string Director {
+            get { return base.Director; }
+            set { base.Director = value; }
+        }
+
+        // TODO: This really ought to be a list of writers...
+        [DatabaseColumn]
+        public override string Writer {
+            get { return base.Writer; }
+            set { base.Writer = value; }
+        }
+
+        [DatabaseColumn]
+        public override int SeasonNumber {
+            get { return base.SeasonNumber; }
+            set { base.SeasonNumber = value; }
+        }
+
+        [DatabaseColumn]
+        public override int EpisodeNumber {
+            get { return base.EpisodeNumber; }
+            set { base.EpisodeNumber = value; }
+        }
+
+        [DatabaseColumn]
+        public override int EpisodeCount {
+            get { return base.EpisodeCount; }
+            set { base.EpisodeCount = value; }
+        }
 
         [VirtualDatabaseColumn ("IsCompilation", "CoreAlbums", "AlbumID", "AlbumID")]
         protected bool IsCompilationField {
--- a/src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs
+++ b/src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs
@@ -937,6 +937,15 @@
                 (int)(~TrackMediaAttributes.Music),
                 (int)(TrackMediaAttributes.VideoStream | TrackMediaAttributes.Podcast)
             );
+            Execute ("ALTER TABLE CoreTracks ADD COLUMN TVShow TEXT");
+            Execute ("ALTER TABLE CoreTracks ADD COLUMN TVShowSort TEXT");
+            Execute ("ALTER TABLE CoreTracks ADD COLUMN TVNetwork TEXT");
+            Execute ("ALTER TABLE CoreTracks ADD COLUMN Director TEXT");
+            Execute ("ALTER TABLE CoreTracks ADD COLUMN Writer TEXT");
+            Execute ("ALTER TABLE CoreTracks ADD COLUMN SeasonNumber INTEGER");
+            Execute ("ALTER TABLE CoreTracks ADD COLUMN EpisodeNumber INTEGER");
+            Execute ("ALTER TABLE CoreTracks ADD COLUMN EpisodeCount INTEGER");
+
             return true;
         }
 
--- a/src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs
+++ b/src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs
@@ -172,6 +172,42 @@
             "title", "titled", "name", "named"
         );
 
+        public static QueryField SeasonNumberField = new QueryField (
+            "season", "SeasonNumber",
+            Catalog.GetString("Season #"), "CoreTracks.SeasonNumber", false
+        );
+
+        public static QueryField EpisodeNumberField = new QueryField (
+            "episode", "EpisodeNumber",
+            Catalog.GetString("Episode #"), "CoreTracks.EpisodeNumber", false
+        );
+
+        public static QueryField EpisodeCountField = new QueryField (
+            "episodecount", "EpisodeCount",
+            Catalog.GetString("Episode Count"), "CoreTracks.EpisodeCount", false
+        );
+
+        public static QueryField TvShowField = new QueryField (
+            "tvshow","TvShow",
+            Catalog.GetString("TV Show"), "CoreTracks.TVShow", false,
+            Catalog.GetString("tvshow")
+        );
+
+        public static QueryField TvNetworkField = new QueryField (
+            "tvnetwork","TvNetwork",
+            Catalog.GetString("TV Network"), "CoreTracks.TVNetwork", false
+        );
+
+        public static QueryField DirectorField = new QueryField (
+            "director","Director",
+            Catalog.GetString("Director"), "CoreTracks.Director", false
+        );
+
+        public static QueryField WriterField = new QueryField (
+            "writer", "Writer",
+            Catalog.GetString("Writer"), "CoreTracks.Writer", false
+        );
+
         public static QueryField YearField = new QueryField (
             "year", "Year",
             Catalog.GetString ("Year"), "CoreTracks.Year", typeof(YearQueryValue),
@@ -339,7 +375,8 @@
             ArtistField, AlbumField, AlbumArtistField, TitleField, TrackNumberField, TrackCountField, DiscNumberField, DiscCountField,
             YearField, GenreField, ComposerField, ConductorField, GroupingField, CommentField, LicenseUriField, RatingField, PlayCountField,
             SkipCountField, FileSizeField, UriField, DurationField, MimeTypeField, LastPlayedField, LastSkippedField,
-            BpmField, BitRateField, SampleRateField, BitsPerSampleField, DateAddedField, PlaylistField, SmartPlaylistField, ScoreField, PlaybackErrorField
+            BpmField, BitRateField, SampleRateField, BitsPerSampleField, DateAddedField, PlaylistField, SmartPlaylistField, ScoreField, PlaybackErrorField,
+            TvShowField, TvNetworkField, DirectorField, WriterField, EpisodeNumberField, EpisodeCountField, SeasonNumberField
         );
 
         // Type Initializer
@@ -400,6 +437,24 @@
             // TODO use the QueryFields here instead of matching on a string key
             string column = null;
             switch (key.ToLower ()) {
+            case "tvshow":
+                sort_query = String.Format (@"
+                    CoreTracks.TVShow {0},
+                    {1}
+                    CoreTracks.SeasonNumber ASC,
+                    CoreTracks.EpisodeNumber ASC,
+                    CoreTracks.TitleSortKey ASC", ascDesc, sort_by_year_part);
+                break;
+
+            case "season":
+            case "episode":
+                sort_query = String.Format (@"
+                    CoreTracks.TVShow ASC,
+                    {1}
+                    CoreTracks.SeasonNumber {0},
+                    CoreTracks.EpisodeNumber {0}", ascDesc, sort_by_year_part);
+                break;
+
                 case "track":
                 case "grouping":
                     sort_query = String.Format (@"
@@ -483,6 +538,9 @@
                         CoreTracks.Playcount {0}, {1}", ascDesc, sort);
                     break;
 
+            case "tvnetwork":
+            case "director":
+            case "writer":
                 case "year":
                 case "bitrate":
                 case "samplerate":
--- a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellEpisodeAndCount.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellEpisodeAndCount.cs
@@ -1 +1,61 @@
+//
+// ColumnCellEpisodeAndCount.cs
+//
+// Author:
+//   Gabriel Burt <gburt@novell.com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+using Mono.Unix;
+
+using Hyena.Data.Gui;
+
+namespace Banshee.Collection.Gui
+{
+    public class ColumnCellEpisodeAndCount : ColumnCellText
+    {
+        // Translators: this is {episode number} of {episode count}
+        private static readonly string format = Catalog.GetString ("{0} of {1}");
+
+        public ColumnCellEpisodeAndCount (string property, bool expand) : base (property, expand)
+        {
+            MinString = String.Format (format, 5, 5);
+            MaxString = String.Format (format, 55, 55);
+            RestrictSize = true;
+        }
+
+        protected override string GetText (object obj)
+        {
+            Banshee.Collection.TrackInfo track = BoundObjectParent as Banshee.Collection.TrackInfo;
+            if (track == null || track.EpisodeNumber == 0) {
+                return String.Empty;
+            }
+            return track.EpisodeCount != 0
+                ? String.Format (format, track.EpisodeNumber, track.EpisodeCount)
+                : track.EpisodeNumber.ToString ();
+        }
+    }
+}
--- a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs
@@ -71,6 +71,12 @@
                 TitleColumn,
                 ArtistColumn,
                 AlbumColumn,
+                SeasonColumn,
+                EpisodeNumberAndCountColumn,
+                TvShowColumn,
+                TvNetworkColumn,
+                DirectorColumn,
+                WriterColumn,
                 CommentColumn,
                 RatingColumn,
                 ScoreColumn,
@@ -112,6 +118,13 @@
             artist_column       = CreateText (BansheeQuery.ArtistField, 0.225, true);
             album_column        = CreateText (BansheeQuery.AlbumField, 0.225, true);
 
+            // TV Show info
+            tv_show_column      = CreateText (BansheeQuery.TvShowField, 0.10);
+            tv_network_column   = CreateText (BansheeQuery.TvNetworkField, 0.10);
+            director_column     = CreateText (BansheeQuery.DirectorField, 0.10);
+            writer_column       = CreateText (BansheeQuery.WriterField, 0.10);
+            season_column       = Create (BansheeQuery.SeasonNumberField, 0.15, false, new ColumnCellPositiveInt (null, true,1,2));
+
             // Others
             album_artist_column = CreateText (BansheeQuery.AlbumArtistField, 0.225);
             genre_column        = CreateText (BansheeQuery.GenreField, 0.25);
@@ -132,6 +145,11 @@
             disc_combined_column.Title = Catalog.GetString ("Disc #");
             disc_combined_column.LongTitle = Catalog.GetString ("Disc & Count");
 
+            episode_combined_column = Create (BansheeQuery.EpisodeNumberField, 0.10, false, new ColumnCellEpisodeAndCount (null, true));
+            episode_combined_column.Property = null;
+            episode_combined_column.Title = Catalog.GetString("Episode #");
+            episode_combined_column.LongTitle = Catalog.GetString ("Episode & Count");
+
             ColumnCellPositiveInt br_cell = new ColumnCellPositiveInt (null, true, 3, 4);
             br_cell.TextFormat  = Catalog.GetString ("{0} kbps");
             bitrate_column      = Create (BansheeQuery.BitRateField, 0.10, false, br_cell);
@@ -310,6 +328,16 @@
             get { return track_combined_column; }
         }
 
+        private SortableColumn episode_combined_column;
+        public SortableColumn EpisodeNumberAndCountColumn {
+            get { return episode_combined_column; }
+        }
+
+        private SortableColumn season_column;
+        public SortableColumn SeasonColumn {
+            get { return season_column; }
+        }
+
         private SortableColumn bpm_column;
         public SortableColumn BpmColumn {
             get { return bpm_column; }
@@ -348,6 +376,26 @@
         private SortableColumn license_uri_column;
         public SortableColumn LicenseUriColumn {
             get { return license_uri_column; }
+        }
+
+        private SortableColumn tv_show_column;
+        public SortableColumn TvShowColumn {
+            get { return tv_show_column; }
+        }
+
+        private SortableColumn tv_network_column;
+        public SortableColumn TvNetworkColumn {
+            get { return tv_network_column; }
+        }
+
+        private SortableColumn director_column;
+        public SortableColumn DirectorColumn {
+            get { return director_column; }
+        }
+
+        private SortableColumn writer_column;
+        public SortableColumn WriterColumn {
+            get { return writer_column; }
         }
 
 #endregion
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/VideoPage.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/VideoPage.cs
@@ -1 +1,152 @@
+//
+// SortingPage.cs
+//
+// Author:
+//   Alex Mauer <hawke@hawkesnest.net>
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using Mono.Unix;
+using Gtk;
+
+using Banshee.Collection;
+
+namespace Banshee.Gui.TrackEditor
+{
+    public class VideoPage : FieldPage, ITrackEditorPage
+    {
+        public int Order {
+            get { return 30; }
+        }
+
+        public string Title {
+            get { return Catalog.GetString ("Video"); }
+        }
+
+        public override PageType PageType {
+            get { return PageType.EditOnly; }
+        }
+
+        protected override void AddFields ()
+        {
+            PageNavigationEntry title_entry = new PageNavigationEntry (Dialog);
+            AddField (this, title_entry, null,
+                delegate { return Catalog.GetString ("Episode _Title:"); },
+                delegate (EditorTrackInfo track, Widget widget) { ((PageNavigationEntry)widget).Text = track.TrackTitle; },
+                delegate (EditorTrackInfo track, Widget widget) { track.TrackTitle = ((PageNavigationEntry)widget).Text; },
+                FieldOptions.NoSync
+            );
+
+            AddField (this, new TextEntry (),
+                Catalog.GetString ("Set all track TV Show titles to this value"),
+                delegate { return Catalog.GetString ("TV Show Title:"); },
+                delegate (EditorTrackInfo track, Widget widget) { ((TextEntry)widget).Text = track.TvShow; },
+                delegate (EditorTrackInfo track, Widget widget) {  track.TvShow = ((TextEntry)widget).Text; }
+            );
+
+            HBox box = new HBox ();
+            box.Spacing = 12;
+            box.Show ();
+            PackStart (box, false, false, 0);
+
+            Label season_label = EditorUtilities.CreateLabel (null);
+/*            album_artist_entry.LabelWidget.SizeAllocated += delegate {
+                year_label.HeightRequest = album_artist_entry.LabelWidget.Allocation.Height;
+            }; */
+            SpinButtonEntry season_entry = new SpinButtonEntry (0, 3000, 1);
+            season_entry.Numeric = true;
+            AddField (box, season_label, season_entry,
+                Catalog.GetString ("Set all seasons to this value"),
+                delegate { return Catalog.GetString ("_Season:"); },
+                delegate (EditorTrackInfo track, Widget widget) { ((SpinButtonEntry)widget).Value = track.SeasonNumber; },
+                delegate (EditorTrackInfo track, Widget widget) { track.SeasonNumber = ((SpinButtonEntry)widget).ValueAsInt; },
+                FieldOptions.Shrink
+            );
+
+            AddField (box,
+                EditorUtilities.CreateLabel (""),
+                /* Translators: "of" is the word beteen an episode number and the total count. */
+                new RangeEntry (Catalog.GetString ("of"), !MultipleTracks
+                    ? null as RangeEntry.RangeOrderClosure
+                    : delegate (RangeEntry entry) {
+                        for (int i = 0, n = Dialog.TrackCount; i < n; i++) {
+                            EditorTrackInfo track = Dialog.LoadTrack (i);
+
+                            if (Dialog.CurrentTrackIndex == i) {
+                                // In this case the writeClosure is invoked,
+                                // which will take care of updating the TrackInfo
+                                entry.From.Value = i + 1;
+                                entry.To.Value = n;
+                            } else {
+                                track.EpisodeNumber = i + 1;
+                                track.EpisodeCount = n;
+                            }
+                        }
+                    },
+                    Catalog.GetString ("Automatically set episode number and count")
+                ),
+                null,
+                delegate { return Catalog.GetString ("Episode _Number:"); },
+                delegate (EditorTrackInfo track, Widget widget) {
+                    RangeEntry entry = (RangeEntry)widget;
+                    entry.From.Value = track.EpisodeNumber;
+                    entry.To.Value = track.EpisodeCount;
+                },
+                // Write closure
+                delegate (EditorTrackInfo track, Widget widget) {
+                    RangeEntry entry = (RangeEntry)widget;
+                    track.EpisodeNumber = (int)entry.From.Value;
+                    track.EpisodeCount = (int)entry.To.Value;
+                },
+                // Sync closure (doesn't modify TrackNumber)
+                delegate (EditorTrackInfo track, Widget widget) {
+                    RangeEntry entry = (RangeEntry)widget;
+                    track.EpisodeCount = (int)entry.To.Value;
+                },
+                FieldOptions.NoShowSync
+            );
+
+            AddField (this, new TextEntry (),
+                Catalog.GetString ("Set all networks to this value"),
+                delegate { return Catalog.GetString ("TV Network:"); },
+                delegate (EditorTrackInfo track, Widget widget) { ((TextEntry)widget).Text = track.TvNetwork; },
+                delegate (EditorTrackInfo track, Widget widget) {  track.TvNetwork = ((TextEntry)widget).Text; }
+            );
+
+            AddField (this, new TextEntry (),
+                Catalog.GetString ("Set all directors to this value"),
+                delegate { return Catalog.GetString ("Director:"); },
+                delegate (EditorTrackInfo track, Widget widget) { ((TextEntry)widget).Text = track.Director; },
+                delegate (EditorTrackInfo track, Widget widget) {  track.Director = ((TextEntry)widget).Text; }
+            );
+
+            AddField (this, new TextEntry (),
+                Catalog.GetString ("Set all writers to this value"),
+                delegate { return Catalog.GetString ("Writer:"); },
+                delegate (EditorTrackInfo track, Widget widget) { ((TextEntry)widget).Text = track.Writer; },
+                delegate (EditorTrackInfo track, Widget widget) {  track.Writer = ((TextEntry)widget).Text; }
+            );
+
+        }
+    }
+}
--- a/src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml
+++ b/src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml
@@ -25,6 +25,7 @@
     <TrackEditorPage class="Banshee.Gui.TrackEditor.BasicTrackDetailsPage"/>
     <TrackEditorPage class="Banshee.Gui.TrackEditor.ExtraTrackDetailsPage"/>
     <TrackEditorPage class="Banshee.Gui.TrackEditor.SortingPage"/>
+    <TrackEditorPage class="Banshee.Gui.TrackEditor.VideoPage"/>
     <!--<TrackEditorPage class="Banshee.Gui.TrackEditor.LyricsPage"/>-->
     <TrackEditorPage class="Banshee.Gui.TrackEditor.StatisticsPage"/>
     <!--<TrackEditorPage class="Banshee.Gui.TrackEditor.HelpPage"/>-->
--- a/src/Core/Banshee.ThickClient/Banshee.ThickClient.csproj
+++ b/src/Core/Banshee.ThickClient/Banshee.ThickClient.csproj
@@ -299,6 +299,8 @@
     <Compile Include="Banshee.Gui.Widgets\CoverArtDisplay.cs" />
     <Compile Include="Banshee.CairoGlyphs\BansheeLineLogo.cs" />
     <Compile Include="Banshee.Gui\IGlobalUIActions.cs" />
+    <Compile Include="Banshee.Gui.TrackEditor\VideoPage.cs" />
+    <Compile Include="Banshee.Collection.Gui\ColumnCellEpisodeAndCount.cs" />
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <ProjectExtensions>
--- a/src/Core/Banshee.ThickClient/Makefile.am
+++ b/src/Core/Banshee.ThickClient/Makefile.am
@@ -20,6 +20,7 @@
 	Banshee.Collection.Gui/ColumnCellDateTime.cs \
 	Banshee.Collection.Gui/ColumnCellDiscAndCount.cs \
 	Banshee.Collection.Gui/ColumnCellDuration.cs \
+	Banshee.Collection.Gui/ColumnCellEpisodeAndCount.cs \
 	Banshee.Collection.Gui/ColumnCellFileSize.cs \
 	Banshee.Collection.Gui/ColumnCellLocation.cs \
 	Banshee.Collection.Gui/ColumnCellPositiveInt.cs \
@@ -86,6 +87,7 @@
 	Banshee.Gui.TrackEditor/TextEntry.cs \
 	Banshee.Gui.TrackEditor/TextViewEntry.cs \
 	Banshee.Gui.TrackEditor/TrackEditorDialog.cs \
+	Banshee.Gui.TrackEditor/VideoPage.cs \
 	Banshee.Gui.Widgets/ArtworkPopup.cs \
 	Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs \
 	Banshee.Gui.Widgets/ConnectedMessageBar.cs \