diff --git a/src/Button.js b/src/Button.js
index 60104068a1..aa06fdd407 100644
--- a/src/Button.js
+++ b/src/Button.js
@@ -2,6 +2,7 @@ import React from 'react';
 import classNames from 'classnames';
 import BootstrapMixin from './BootstrapMixin';
 import CustomPropTypes from './utils/CustomPropTypes';
+import ButtonInput from './ButtonInput';
 
 const Button = React.createClass({
   mixins: [BootstrapMixin],
@@ -14,14 +15,18 @@ const Button = React.createClass({
     navDropdown: React.PropTypes.bool,
     componentClass: CustomPropTypes.elementType,
     href: React.PropTypes.string,
-    target: React.PropTypes.string
+    target: React.PropTypes.string,
+    /**
+     * Defines HTML button type Attribute
+     * @type {("button"|"reset"|"submit")}
+     */
+    type: React.PropTypes.oneOf(ButtonInput.types)
   },
 
   getDefaultProps() {
     return {
       bsClass: 'button',
-      bsStyle: 'default',
-      type: 'button'
+      bsStyle: 'default'
     };
   },
 
@@ -68,6 +73,7 @@ const Button = React.createClass({
     return (
       <Component
         {...this.props}
+        type={this.props.type || 'button'}
         className={classNames(this.props.className, classes)}>
         {this.props.children}
       </Component>