             @updatePersonalisationButtonClass type
 
             if view?
+               if @changePending
+                    @listenToOnce @contents, 'show', =>
+                        @changePending = false
+                        @change type, opts
+                    return
+                @changePending = true
+                @listenToOnce @contents, 'show', => @changePending = false
                 @contents.show view, animationType: @getAnimationType(type)
                 @openViewType = type
                 @opened = true

            header: '#navigation-header'
            contents: '#navigation-contents'
        onShow: ->
            @header.show new NavigationHeaderView
                layout: this
                searchState: @searchState
                searchResults: @searchResults
                selectedUnits: @selectedUnits
        initialize: (@appModels) ->
            {
                @services

            @openViewType = null # initially the sidebar is closed.
            @addListeners()
            @restoreViewTypeOnCancel = null
            @changePending = false
        addListeners: ->
            @listenTo @cancelToken, 'change:value', =>
                wrappedValue = @cancelToken.value()
