   nearbyDiscussions: =>
     return [] if !@state.timestamp? || @props.mode != 'timeline'
 
-    if !@cache.nearbyDiscussions? || @cache.nearbyDiscussions.timestamp != @state.timestamp
+    if @nearbyDiscussionsCache? && (@nearbyDiscussionsCache.beatmap != @props.currentBeatmap || @nearbyDiscussionsCache.timestamp != @state.timestamp)
+      @nearbyDiscussionsCache = null
+
+    if !@nearbyDiscussionsCache?
       discussions = {}
 
       for discussion in @props.currentDiscussions.timelineAllUsers

  componentDidMount: =>
    $(window).on 'throttled-resize.new-discussion', @setTop
    @inputBox?.focus() if @props.autoFocus


  componentWillUpdate: =>
    @cache = {}


  componentWillUnmount: =>


      shownDiscussions = discussions.d0 ? discussions.d100 ? discussions.d1000 ? discussions.other ? []

      @nearbyDiscussionsCache =
        beatmap: @props.currentBeatmap
        timestamp: @state.timestamp
        discussions: _.sortBy shownDiscussions, 'timestamp'

    @nearbyDiscussionsCache.discussions


  onFocus: =>
