       # if id is undefined, render as loading. loadableItem is waiting for id to be retrieved.
       return true unless id?
 
-      if store.get(id)
+      if store.get(id, options)
         false
-      else if isLoading(id)
+      else if isLoading(id, options)
         true
-      else if isLoaded(id)
+      else if isLoaded(id, options)
         false
-      else if store.isUnknown(id) or store.reload(id)
+      else if store.isUnknown(id, options) or store.reload(id, options)
         true
-      else if store.isNew(id) and store.get(id).id and saved
+      else if store.isNew(id, options) and store.get(id, options).id and saved
         # If this store was just created, then call the onSaved prop
         saved()
       else

  displayName: 'LoadableItem'
  propTypes:
    id: React.PropTypes.string.isRequired
    store: React.PropTypes.object.isRequired
    actions: React.PropTypes.object.isRequired
    renderItem: React.PropTypes.func.isRequired

  componentDidUpdate: (oldProps) -> @reload(oldProps)

  reload: (oldProps) ->
    {id, store, load, actions, options} = @props
    return unless id?

    # Skip reloading if all the props are the same (the case in the Calendar for some reason)
    return if oldProps.id is id and oldProps.store is store and oldProps.actions is actions and
      oldProps.load is load and _.isEqual(oldProps.options, options)

    load ?= actions.load
    unless store.isNew(id, options)
      load(id, options)

  render: ->
    { id, store, actions, load, isLoaded, isLoading, renderItem,
      saved, renderLoading, renderError, renderBug, update, options} = @props

    load ?= actions.load
    isLoaded ?= store.isLoaded
