         title = __ 'Plugin update'
         outdatedPlugins = []
         for plugin, index in plugins
-          if semver.lt(plugin.version, latest[plugin.packageName])
+          if needUpdate(plugin.version, latest[plugin.packageName])
             if plugin.displayName.props?.children?
               displayItems = plugin.displayName.props.children
             else

                      }
                    </Button>
                    <Button bsStyle='primary'
                            disabled={@state.updating[index] || semver.gte(plugin.version, @state.latest[plugin.packageName]) || @state.removeStatus[index] != 0}
                            onClick={@handleUpdate.bind @, index, @handleUpdateComplete}
                            style={width: "33%"}
                            className="plugin-control-button">
                      <FontAwesome name={
                                     if @state.updating[index]
                                       "spinner"
                                     else if semver.lt(plugin.version, @state.latest[plugin.packageName])
                                       "cloud-download"
                                     else
                                       "check"

ifStableVersion = (version) ->
  semver.satisfies version,
    ">= #{semver.major version}.#{semver.minor version}.#{semver.patch version}"

needUpdate = (now, check) ->
  if ifStableVersion now
    semver.lt now, check
  else if not ifStableVersion(now) and not ifStableVersion(check)
    semver.lt now, check
  else
    true

PluginConfig = React.createClass
  getInitialState: ->
