diff --git a/podcast/rb-podcast-manager.c b/podcast/rb-podcast-manager.c
index 82019da..2d87e88 100644
--- a/podcast/rb-podcast-manager.c
+++ b/podcast/rb-podcast-manager.c
@@ -1103,6 +1103,36 @@ rb_podcast_manager_add_post (RhythmDB *db,
 	if (entry)
 		return NULL;
 
+        /*
+         * Does the title with this filesize already exist?
+         * this check is necessary since after an entry's file is downloaded,
+         * the location stored in the db changes to the local file path
+         * instead of the url. The url moves to the mount-point attribute.
+         * Consequently, without this check, every downloaded entry will be
+         * re-added to the db.
+         * */
+	RhythmDBQueryModel *similar_entries = NULL;
+        similar_entries = rhythmdb_query_model_new_empty (db);
+        rhythmdb_do_full_query (db, RHYTHMDB_QUERY_RESULTS (similar_entries),
+                RHYTHMDB_QUERY_PROP_EQUALS,
+                RHYTHMDB_PROP_TYPE,
+                RHYTHMDB_ENTRY_TYPE_PODCAST_POST,
+                RHYTHMDB_QUERY_PROP_EQUALS,
+                RHYTHMDB_PROP_SUBTITLE,
+                subtitle,
+                RHYTHMDB_QUERY_PROP_EQUALS,
+                RHYTHMDB_PROP_TITLE,
+                title,
+                RHYTHMDB_QUERY_PROP_EQUALS,
+                RHYTHMDB_PROP_FILE_SIZE,
+                filesize,
+                RHYTHMDB_QUERY_END);
+
+        /* look for an existing entry; don't add duplicate titles */
+        GtkTreeIter iter;
+        if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (similar_entries), &iter))
+            return NULL;
+
 	entry = rhythmdb_entry_new (db,
 				    RHYTHMDB_ENTRY_TYPE_PODCAST_POST,
 				    uri);
@@ -1934,29 +1964,38 @@ rb_podcast_manager_insert_feed (RBPodcastManager *pd, RBPodcastChannel *data)
 			}
 		}
 
-		if (item->pub_date > last_post || item->pub_date == 0) {
-			updated = TRUE;
-
-			post_entry =
-				rb_podcast_manager_add_post (db,
-							     title,
-							     (gchar *) item->title,
-							     (gchar *) data->url,
-							     (gchar *) (item->author ? item->author : data->author),
-							     (gchar *) item->url,
-							     (gchar *) item->description,
-							     (gulong) (item->pub_date > 0 ? item->pub_date : data->pub_date),
-							     (gulong) item->duration,
-							     item->filesize);
-			if (post_entry && item->pub_date >= new_last_post) {
-				if (item->pub_date > new_last_post) {
-					g_list_free (download_entries);
-					download_entries = NULL;
-				}
-				download_entries = g_list_prepend (download_entries, post_entry);
-				new_last_post = item->pub_date;
-			}
-		}
+
+                /* 
+                 * Always try to add a post_entry.
+                 * Removed the check of whether or not the entry's post_time >
+                 * than the feed's pub_time (last update time)
+                 * because that check was not a great
+                 * indicator of whether or not to insert a post_entry.
+                 * For some podcasts, this condition was never met.
+                 * */
+                post_entry =
+                    rb_podcast_manager_add_post (db,
+                            title,
+                            (gchar *) item->title,
+                            (gchar *) data->url,
+                            (gchar *) (item->author ? item->author : data->author),
+                            (gchar *) item->url,
+                            (gchar *) item->description,
+                            (gulong) (item->pub_date > 0 ? item->pub_date : data->pub_date),
+                            (gulong) item->duration,
+                            item->filesize);
+
+                if (post_entry)
+                    updated = TRUE;
+
+                if (post_entry && item->pub_date >= new_last_post) {
+                    if (item->pub_date > new_last_post) {
+                        g_list_free (download_entries);
+                        download_entries = NULL;
+                    }
+                    download_entries = g_list_prepend (download_entries, post_entry);
+                    new_last_post = item->pub_date;
+                }
 	}
 
 	if (download_last) {
