diff --git a/lib/bootstrap_form/helpers/bootstrap.rb b/lib/bootstrap_form/helpers/bootstrap.rb
index <HASH>..<HASH> 100644
--- a/lib/bootstrap_form/helpers/bootstrap.rb
+++ b/lib/bootstrap_form/helpers/bootstrap.rb
@@ -7,7 +7,7 @@ module BootstrapForm
       end
 
       def primary(name = nil, options = {})
-        options.merge! class: 'btn btn-primary'
+        options.reverse_merge! class: 'btn btn-primary'
         submit(name, options)
       end
 
diff --git a/test/bootstrap_other_components_test.rb b/test/bootstrap_other_components_test.rb
index <HASH>..<HASH> 100644
--- a/test/bootstrap_other_components_test.rb
+++ b/test/bootstrap_other_components_test.rb
@@ -51,4 +51,9 @@ class BootstrapOtherComponentsTest < ActionView::TestCase
     expected = %{<input class="btn btn-primary" name="commit" type="submit" value="Submit Form" />}
     assert_equal expected, @builder.primary("Submit Form")
   end
+
+  test "override primary button classes" do
+    expected = %{<input class="btn btn-primary disabled" name="commit" type="submit" value="Submit Form" />}
+    assert_equal expected, @builder.primary("Submit Form", class: "btn btn-primary disabled")
+  end
 end
Can't override primary button classes