diff --git a/includes/form.inc b/includes/form.inc
index b0345d63821ed7ec8148e551de4053530b35c89f..ad67fd8245ed90c020725ab063007b0bc3c1c48d 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -856,7 +856,15 @@ function theme_submit($element) {
 }
 
 function theme_button($element) {
-  return '<input type="submit" class="form-'. $element['#button_type'] .'" '. (empty($element['#name']) ? '' : 'name="'. $element['#name'] .'" ') .'value="'. check_plain($element['#value']) .'" '. drupal_attributes($element['#attributes']) ." />\n";
+  //Make sure not to overwrite classes
+  if (isset($element['#attributes']['class'])) {
+    $element['#attributes']['class'] = 'form-'. $element['#button_type'] .' '. $element['#attributes']['class'];
+  }
+  else {
+    $element['#attributes']['class'] = 'form-'. $element['#button_type'];
+  }
+  
+  return '<input type="submit" '. (empty($element['#name']) ? '' : 'name="'. $element['#name'] .'" ') .'value="'. check_plain($element['#value']) .'" '. drupal_attributes($element['#attributes']) ." />\n";
 }
 
 /**