diff --git a/js/collapse.js b/js/collapse.js
index b2678e0a54e96796eca4e2b7abbfce3cea768d92..7c3c20da173c7011ec731dde41b5009c109e9990 100644
--- a/js/collapse.js
+++ b/js/collapse.js
@@ -145,7 +145,10 @@
         || e.preventDefault()
         || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
     var option = $(target).data('collapse') ? 'toggle' : $this.data()
+    var parent = $this.attr('data-parent')
+    var $parent = parent && $(parent)
 
+    if ($parent) $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed')
     $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
     $(target).collapse(option)
   })
diff --git a/js/tests/unit/collapse.js b/js/tests/unit/collapse.js
index dd2cee27dbb51068cf295b572d343000c1e61789..73799c75dd55febf439e40bacb4bffaa03aba80f 100644
--- a/js/tests/unit/collapse.js
+++ b/js/tests/unit/collapse.js
@@ -91,4 +91,39 @@ $(function () {
         target.click()
       })
 
+      test("should remove active class from inactive accordion targets", function () {
+        $.support.transition = false
+        stop()
+
+        var accordion = $('<div id="accordion"><div class="accordion-group"></div><div class="accordion-group"></div><div class="accordion-group"></div></div>')
+          .appendTo($('#qunit-fixture'))
+
+        var target1 = $('<a data-toggle="collapse" href="#body1" data-parent="#accordion"></a>')
+          .appendTo(accordion.find('.accordion-group').eq(0))
+
+        var collapsible1 = $('<div id="body1" class="in"></div>')
+          .appendTo(accordion.find('.accordion-group').eq(0))
+
+        var target2 = $('<a class="collapsed" data-toggle="collapse" href="#body2" data-parent="#accordion"></a>')
+          .appendTo(accordion.find('.accordion-group').eq(1))
+
+        var collapsible2 = $('<div id="body2"></div>')
+          .appendTo(accordion.find('.accordion-group').eq(1))
+
+        var target3 = $('<a class="collapsed" data-toggle="collapse" href="#body3" data-parent="#accordion"></a>')
+          .appendTo(accordion.find('.accordion-group').eq(2))
+
+        var collapsible3 = $('<div id="body3"></div>')
+          .appendTo(accordion.find('.accordion-group').eq(2))
+          .on('show.bs.collapse', function () {
+            ok(target1.hasClass('collapsed'))
+            ok(target2.hasClass('collapsed'))
+            ok(!target3.hasClass('collapsed'))
+
+            start()
+          })
+
+        target3.click()
+      })
+
 })