     if index > -1
       @activeFeatures.splice(index, 1)
     else
-      @activeFeatures.push(feature)
+      @activate(feature)
 
     @update()
+
+    return
+
+  activate: (feature) ->
+    @activeFeatures.push(feature)
+
+    return unless @features[feature].exclude
+
+    for another in @features[feature].exclude
+      index = @activeFeatures.indexOf(another)
+      continue unless index > -1
+
+      @activeFeatures.splice(index, 1)
+      $(".toggle[data-feature=#{ another }]", @panel).removeClass('active')
 
     return
 

  constructor: () ->
    @panel = $('<div></div>').attr(id: 'typeworks')

    for feature in TypeWorks.features
      $("<a><span>#{ feature.title }</span></a>").
        attr(href: '#', title: feature.title, 'data-feature': feature.slug).
        addClass('toggle').

    { slug: 'smcp', title: 'Small capitals' },
    { slug: 'c2sc', title: 'Small capitals from capitals' },

    { slug: 'lnum', title: 'Lining figures', exclude: [ 'onum' ] },
    { slug: 'onum', title: 'Old-style figures', exclude: [ 'lnum' ] },

    { slug: 'pnum', title: 'Proportional figures', exclude: [ 'tnum' ] },
    { slug: 'tnum', title: 'Tabular figures', exclude: [ 'pnum' ] },

    { slug: 'frac', title: 'Fractions', exclude: [ 'afrc' ] },
    { slug: 'afrc', title: 'Alternative fractions', exclude: [ 'frac' ] },

    { slug: 'zero', title: 'Slashed zero' },
    { slug: 'nalt', title: 'Alternate annotation forms' },
