diff --git a/editors/js/markitup.js b/editors/js/markitup.js
index b909251..5c9acfa 100644
--- a/editors/js/markitup.js
+++ b/editors/js/markitup.js
@@ -21,16 +21,18 @@ Drupal.wysiwyg.editor.attach.markitup = function(context, params, settings) {
 
   $('#' + params.field, context).markItUp(settings);
 
-  // Adjust CSS for editor buttons.
-  $.each(settings.markupSet, function (index, button) {
-    // Get button from class name, for example: markitup-h1
-    var name = button.className.substr(9);
-    if (name != 'separator') {
-      $('.' + settings.nameSpace + ' .' + this.className + ' a')
-        .css({ backgroundImage: 'url(' + settings.root + 'sets/' + settings.markupSetName + '/images/' + name + '.png' + ')' })
-        .parents('li').css({ backgroundImage: 'none' });
-    }
-  });
+  if (settings.addButtonImages) {
+    // Adjust CSS for editor buttons.
+    $.each(settings.markupSet, function (index, button) {
+      // Get button from class name, for example: markitup-h1
+      var name = button.className.substr(9);
+      if (name != 'separator') {
+        $('.' + settings.nameSpace + ' .' + this.className + ' a')
+          .css({ backgroundImage: 'url(' + settings.root + 'sets/' + settings.markupSetName + '/images/' + name + '.png' + ')' })
+          .parents('li').css({ backgroundImage: 'none' });
+      }
+    });
+  }
 };
 
 /**
@@ -86,8 +88,8 @@ Drupal.wysiwyg.editor.markitup.sets.default = {
 };
 
 Drupal.wysiwyg.editor.markitup.sets.markdown = {
-  h1: {name:'First Level Heading', key:'1', openWith:'# ', placeHolder:'Your title here...', className:'markitup-h1' },
-  h2: {name:'First Leve2 Heading', key:'2', openWith:'## ', placeHolder:'Your title here...', className:'markitup-h2' },
+  h1: {name:'Heading 1', key:'1', openWith:'# ', placeHolder:'Your title here...', className:'markitup-h1' },
+  h2: {name:'Heading 2', key:'2', openWith:'## ', placeHolder:'Your title here...', className:'markitup-h2' },
   h3: {name:'Heading 3', key:'3', openWith:'### ', placeHolder:'Your title here...', className:'markitup-h3' },
   h4: {name:'Heading 4', key:'4', openWith:'#### ', placeHolder:'Your title here...', className:'markitup-h4' },
   h5: {name:'Heading 5', key:'5', openWith:'##### ', placeHolder:'Your title here...', className:'markitup-h5' },
diff --git a/editors/markitup.inc b/editors/markitup.inc
index 04a1dfb..97971f7 100644
--- a/editors/markitup.inc
+++ b/editors/markitup.inc
@@ -91,6 +91,20 @@ function wysiwyg_markitup_themes($editor, $profile) {
 }
 
 /**
+ * Implements hook_wysiwyg_markitup_markup_type_info().
+ */
+function wysiwyg_wysiwyg_markitup_markup_type_info() {
+  return array(
+    'default' => array(
+      'name' => 'HTML',
+    ),
+    'markdown' => array(
+      'name' => t('Markdown'),
+    ),
+  );
+}
+
+/**
  * Enhances the editor profile settings form for markItUp.
  */
 function wysiwyg_markitup_settings_form(&$form, &$form_state) {
@@ -100,11 +114,25 @@ function wysiwyg_markitup_settings_form(&$form, &$form_state) {
   $form['basic']['language']['#access'] = FALSE;
   $form['css']['#access'] = FALSE;
 
+  // Get the available markup types.
+  $markup_types = module_invoke_all('wysiwyg_markitup_markup_type_info');
+  $options = array();
+  foreach ($markup_types as $machine_name => $info) {
+    $options[$machine_name] = $info['name'];
+  }
+
   $form['output']['markup_type'] = array(
     '#type' => 'select',
     '#title' => t('Markup type'),
     '#default_value' => $settings['markup_type'],
-    '#options' => array('default' => 'HTML', 'markdown' => t('Markdown')),
+    '#options' => $options,
+  );
+
+  $form['output']['add_button_images'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Add images for buttons'),
+    '#description' => t('By default wysiwyg adds the button images as styles on the button element. This makes it difficult to theme as different buttons. Uncheck this box to remove those styles.'),
+    '#default_value' => isset($settings['add_button_images']) ? $settings['add_button_images'] : TRUE,
   );
 }
 
@@ -135,56 +163,110 @@ function wysiwyg_markitup_settings($editor, $config, $theme) {
     'nameSpace' => $theme,
     'buttons' => array(),
     'markupSetName' => isset($config['markup_type']) ? $config['markup_type'] : 'default',
+    'addButtonImages' => isset($config['add_button_images']) ? $config['add_button_images'] : FALSE,
   );
 
-  $default_buttons = array(
+  $default_buttons = _wysiwyg_markitup_default_buttons();
+
+  if (!empty($config['buttons'])) {
+    foreach ($config['buttons'] as $plugin) {
+      foreach ($plugin as $button => $enabled) {
+        if (isset($default_buttons[$button])) {
+          $group = !empty($default_buttons[$button]['group']) ? $default_buttons[$button]['group'] : 'other';
+          $settings['buttons'][$group][$button] = $default_buttons[$button];
+        }
+      }
+    }
+  }
+ return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_markitup_plugins($editor) {
+  $default_buttons = _wysiwyg_markitup_default_buttons();
+  $buttons = array();
+  foreach ($default_buttons as $button => $info) {
+    $buttons[$button] = $info['name'];
+  }
+
+  return array(
+    'default' => array(
+      'buttons' => $buttons,
+      'internal' => TRUE,
+    ),
+  );
+}
+
+/**
+ * Define the default buttons.
+ */
+function _wysiwyg_markitup_default_buttons() {
+  return array(
     'h1' => array(
-      'name' => t('First Level Heading'),
+      'name' => t('Heading 1'),
+      'group' => 'heading',
     ),
     'h2' => array(
-      'name' => t('Second Level Heading'),
+      'name' => t('Heading 2'),
+      'group' => 'heading',
     ),
     'h3' => array(
       'name' => t('Heading 3'),
+      'group' => 'heading',
     ),
     'h4' => array(
       'name' => t('Heading 4'),
+      'group' => 'heading',
     ),
     'h5' => array(
       'name' => t('Heading 5'),
+      'group' => 'heading',
     ),
     'h6' => array(
       'name' => t('Heading 6'),
+      'group' => 'heading',
     ),
     'bold' => array(
       'name' => t('Bold'),
+      'group' => 'basicstyles',
     ),
     'italic' => array(
       'name' => t('Italic'),
+      'group' => 'basicstyles',
     ),
     'stroke' => array(
       'name' => t('Strike-through'),
+      'group' => 'basicstyles',
     ),
     'ul' => array(
       'name' => t('Bullet list'),
+      'group' => 'paragraph',
     ),
     'ol' => array(
       'name' => t('Numeric list'),
+      'group' => 'paragraph',
     ),
     'image' => array(
       'name' => t('Image'),
+      'group' => 'insert',
     ),
     'link' => array(
       'name' => t('Link'),
+      'group' => 'insert',
     ),
     'quotes' => array(
       'name' => t('Quotes'),
+      'group' => 'tools',
     ),
     'code' => array(
       'name' => t('Code Block / Code'),
+      'group' => 'tools',
     ),
     'kbd' => array(
       'name' => t('Keyboard Input'),
+      'group' => 'tools',
     ),
     'cleanup' => array(
       'name' => t('Clean-up'),
@@ -193,90 +275,4 @@ function wysiwyg_markitup_settings($editor, $config, $theme) {
       'name' => t('Preview'),
     ),
   );
-
-  if (!empty($config['buttons'])) {
-    foreach ($config['buttons'] as $plugin) {
-      foreach ($plugin as $button => $enabled) {
-        if (isset($default_buttons[$button])) {
-          $settings['buttons'][_wysiwyg_markitup_group($button)][$button] = $default_buttons[$button];
-        }
-      }
-    }
-  }
- return $settings;
-}
-
-/**
- * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
- */
-function wysiwyg_markitup_plugins($editor) {
-  return array(
-    'default' => array(
-      'buttons' => array(
-        'h1' => t('Heading 1'),
-        'h2' => t('Heading 2'),
-        'h3' => t('Heading 3'),
-        'h4' => t('Heading 4'),
-        'h5' => t('Heading 5'),
-        'h6' => t('Heading 6'),
-        'bold' => t('Bold'),
-        'italic' => t('Italic'),
-        'stroke' => t('Strike-through'),
-        'ul' => t('Bullet list'),
-        'ol' => t('Numeric list'),
-        'link' => t('Link'),
-        'image' => t('Image'),
-        'quotes' => t('Block quote / Inline quote'),
-        'code' => t('Code Block / Code'),
-        'kbd' => t('Keyboard input'),
-        'cleanup' => t('Clean-up'),
-        'preview' => t('Preview'),
-      ),
-      'internal' => TRUE,
-    ),
-  );
-}
-
-/**
- * Define grouping for ckEditor buttons.
- */
-function _wysiwyg_markitup_group($button) {
-  switch ($button) {
-    case 'h1':
-    case 'h2':
-    case 'h3':
-    case 'h4':
-    case 'h5':
-    case 'h6':
-      $group = 'heading';
-      break;
-
-    case 'bold':
-    case 'italic':
-    case 'stroke':
-      $group = 'basicstyles';
-      break;
-
-    case 'ol':
-    case 'ul':
-      $group = 'paragraph';
-      break;
-
-    case 'link':
-    case 'image':
-      $group = 'insert';
-      break;
-
-    case 'quotes':
-    case 'code':
-    case 'kbd':
-      $group = 'tools';
-      break;
-
-    default:
-      $group = 'other';
-      break;
-  }
-
-  return $group;
 }
