     )
 
   config = new up.Config ->
-    preloadDelay: 90
-    followSelectors: combineFollowableSelectors(LINKS_WITH_REMOTE_HTML, ATTRIBUTES_SUGGESTING_FOLLOW).concat(LINKS_WITH_LOCAL_HTML)
-    instantSelectors: ['[up-instant]']
-    preloadSelectors: combineFollowableSelectors(LINKS_WITH_REMOTE_HTML, ['[up-preload]'])
-    clickableSelectors: LINKS_WITH_LOCAL_HTML.concat ['[up-emit]', '[up-accept]', '[up-dismiss]', '[up-clickable]']
+    noFollowSelectors = ['[up-follow=false]', '[rel=download]']
+    return {
+      followSelectors: combineFollowableSelectors(LINKS_WITH_REMOTE_HTML, ATTRIBUTES_SUGGESTING_FOLLOW).concat(LINKS_WITH_LOCAL_HTML),
+      noFollowSelectors: noFollowSelectors
+
+      instantSelectors: ['[up-instant]'],
+      noInstantSelectors: ['[up-instant=false]'].concat(noFollowSelectors),
+
+      preloadSelectors: combineFollowableSelectors(LINKS_WITH_REMOTE_HTML, ['[up-preload]']),
+      noPreloadSelectors: ['[up-preload=false]'].concat(noFollowSelectors),
+
+      clickableSelectors: LINKS_WITH_LOCAL_HTML.concat(['[up-emit]', '[up-accept]', '[up-dismiss]', '[up-clickable]']),
+
+      preloadDelay: 90,
+    }
 
   fullFollowSelector = ->
     config.followSelectors.join(',')

  @stable
  ###
  up.compiler fullPreloadSelector, (link) ->
    unless e.matches(link, '[up-preload=false], [up-follow=false]')
      return linkPreloader.observeLink(link)

  up.on 'up:framework:reset', reset

  fullClickableSelector = ->
    config.clickableSelectors.join(',')

  isFollowDisabled = (link) ->
    return e.matches(link, config.noFollowSelectors.join(','))

  isPreloadDisabled = (link) ->
    return e.matches(link, config.noPreloadSelectors.join(','))

  isInstantDisabled = (link) ->
    return e.matches(link, config.noInstantSelectors.join(','))

  ###**
  @property up.link.config
