diff --git a/app/assets/javascripts/discourse/models/topic_list.js b/app/assets/javascripts/discourse/models/topic_list.js
index a71057c87..8fc47ae94 100644
--- a/app/assets/javascripts/discourse/models/topic_list.js
+++ b/app/assets/javascripts/discourse/models/topic_list.js
@@ -87,9 +87,14 @@ Discourse.TopicList.reopenClass({
         // the new topics loaded from the server
         var newTopics = Discourse.TopicList.topicsFrom(result);
 
-        defer.resolve(topic_ids.map(function(id){
-          return newTopics.find(function(t){ return t.id === id; });
-        }));
+        var topics = _(topic_ids)
+          .map(function(id){
+                  return newTopics.find(function(t){ return t.id === id; });
+                })
+          .without(undefined)
+          .value();
+
+        defer.resolve(topics);
       } else {
         defer.reject();
       }
diff --git a/app/assets/javascripts/discourse/views/topic_view.js b/app/assets/javascripts/discourse/views/topic_view.js
index 3d3ea0faa..2fd71b9ee 100644
--- a/app/assets/javascripts/discourse/views/topic_view.js
+++ b/app/assets/javascripts/discourse/views/topic_view.js
@@ -143,7 +143,7 @@ Discourse.TopicView = Discourse.View.extend(Discourse.Scrolling, {
 
     if(suggested) {
 
-      var existing = _(suggested).map(function(topic){
+      var existing = _.map(suggested, function(topic){
         return topic.get("id");
       });