     if @state.loading || @state.paging.loading || !@state.paging.more
       return
 
-    paging_state = @state.paging
-    paging_state.loading = true
-
-    @setState paging: paging_state
+    pagingState = _.extend {}, @state.paging
+    pagingState.loading = true
+
+    @setState paging: pagingState
 
     $.ajax @state.paging.url,
       method: 'get'

      data: _.extend @buildSearchQuery(), page: @state.paging.page + 1
    .done (data) =>
      more = data.length > 10
      newState =
        beatmaps: @state.beatmaps.concat(data)
        paging:
          page: @state.paging.page + (if more then 1 else 0)
          url: @state.paging.url
          more: more
        loading: false

      @setState newState


  saveState: =>

    newUrl = laroute.route 'beatmapsets.index', params

    return if "#{location.pathname}#{location.search}" == newUrl

    @showLoader()
    @xhr.search = $.ajax @state.paging.url,
