diff --git a/src/Plugin/Preprocess/Input.php b/src/Plugin/Preprocess/Input.php
index 5d56e40..7e4e7ff 100644
--- a/src/Plugin/Preprocess/Input.php
+++ b/src/Plugin/Preprocess/Input.php
@@ -33,15 +33,25 @@ class Input extends PreprocessBase implements PreprocessInterface {
     // Create variables for #input_group and #input_group_button flags.
     $variables['input_group'] = $element->getProperty('input_group') || $element->getProperty('input_group_button');
 
+    // Create variables for #input_group_button_processed that
+    // button has been rendered as #filed_suffix of other element.
+    $variables['input_group_button_processed'] = $variables->element->getProperty('input_group_button_processed');
+
     // Map the element properties.
     $variables->map([
       'attributes' => 'attributes',
       'icon' => 'icon',
-      'field_prefix' => 'prefix',
-      'field_suffix' => 'suffix',
       'type' => 'type',
     ]);
 
+    // Just map the prefix and suffix when input_group property enabled.
+    if ($variables['input_group']) {
+      $variables->map([
+        'field_prefix' => 'prefix',
+        'field_suffix' => 'suffix',
+      ]);
+    }
+
     // Ensure attributes are proper objects.
     $this->preprocessAttributes();
   }
diff --git a/src/Plugin/ProcessManager.php b/src/Plugin/ProcessManager.php
index a118c15..f97d472 100644
--- a/src/Plugin/ProcessManager.php
+++ b/src/Plugin/ProcessManager.php
@@ -133,7 +133,8 @@ class ProcessManager extends PluginManager {
       // Find the closest button.
       if ($button = self::findButton($parent)) {
         $element->appendProperty('field_suffix', $button->setIcon());
-        $button->setProperty('access', FALSE);
+        // Set button has been rendered as field_suffix.
+        $button->setProperty('input_group_button_processed', TRUE);
       }
     }
 
diff --git a/templates/input/input--button--dropdown.html.twig b/templates/input/input--button--dropdown.html.twig
index de7c4e6..36dc7b9 100644
--- a/templates/input/input--button--dropdown.html.twig
+++ b/templates/input/input--button--dropdown.html.twig
@@ -14,6 +14,7 @@
  * - prefix: Markup to display before the input element.
  * - suffix: Markup to display after the input element.
  * - type: The type of input.
+ * - input_group_button_processed: Flag of button has been rendered.
  *
  * @ingroup templates
  *
@@ -24,8 +25,10 @@
 #}
 {% spaceless %}
   {% block input %}
-    <a href="#" data-target="dropdown-button">{{ label }}</a>
-    <button{{ attributes.addClass('hidden') }}>{{ label }}</button>
-    {{ children }}
+    {% if not input_group_button_processed %}
+      <a href="#" data-target="dropdown-button">{{ label }}</a>
+      <button{{ attributes.addClass('hidden') }}>{{ label }}</button>
+      {{ children }}
+    {% endif %}
   {% endblock %}
 {% endspaceless %}
diff --git a/templates/input/input--button--split.html.twig b/templates/input/input--button--split.html.twig
index 0548020..4daa419 100644
--- a/templates/input/input--button--split.html.twig
+++ b/templates/input/input--button--split.html.twig
@@ -14,6 +14,7 @@
  * - prefix: Markup to display before the input element.
  * - suffix: Markup to display after the input element.
  * - type: The type of input.
+ * - input_group_button_processed: Flag of button has been rendered.
  *
  * @ingroup templates
  *
@@ -31,29 +32,31 @@
     ]
   %}
   {% block input %}
-    {% if icon_only %}
-      <button{{ attributes.addClass(classes, 'icon-only') }}>
-        <span class="sr-only">{{ label }}</span>
-        {{ icon }}
-      </button>
-    {% else %}
-      {% if icon_position == 'after' %}
-        <button{{ attributes.addClass(classes) }}>{{ label }}{{ icon }}</button>{{ children }}
+    {% if not input_group_button_processed %}
+      {% if icon_only %}
+        <button{{ attributes.addClass(classes, 'icon-only') }}>
+          <span class="sr-only">{{ label }}</span>
+          {{ icon }}
+        </button>
       {% else %}
-        <button{{ attributes.addClass(classes) }}>{{ icon }}{{ label }}</button>{{ children }}
+        {% if icon_position == 'after' %}
+          <button{{ attributes.addClass(classes) }}>{{ label }}{{ icon }}</button>{{ children }}
+        {% else %}
+          <button{{ attributes.addClass(classes) }}>{{ icon }}{{ label }}</button>{{ children }}
+        {% endif %}
       {% endif %}
+      {%
+        set classes = [
+          'btn',
+          'dropdown-toggle',
+          theme.settings.button_size ? theme.settings.button_size,
+        ]
+      %}
+      <button{{ split_button_attributes.addClass(classes) }} type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+        <span class="caret"></span>
+        <span class="sr-only">{{ 'Toggle Dropdown'|t }}</span>
+      </button>
+      {{ children }}
     {% endif %}
-    {%
-      set classes = [
-        'btn',
-        'dropdown-toggle',
-        theme.settings.button_size ? theme.settings.button_size,
-      ]
-    %}
-    <button{{ split_button_attributes.addClass(classes) }} type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-      <span class="caret"></span>
-      <span class="sr-only">{{ 'Toggle Dropdown'|t }}</span>
-    </button>
-    {{ children }}
   {% endblock %}
 {% endspaceless %}
diff --git a/templates/input/input--button.html.twig b/templates/input/input--button.html.twig
index 4272b24..48583f0 100644
--- a/templates/input/input--button.html.twig
+++ b/templates/input/input--button.html.twig
@@ -14,6 +14,7 @@
  * - prefix: Markup to display before the input element.
  * - suffix: Markup to display after the input element.
  * - type: The type of input.
+ * - input_group_button_processed: Flag of button has been rendered.
  *
  * @ingroup templates
  *
@@ -31,18 +32,20 @@
     ]
   %}
   {% block input %}
-    {% if icon_only %}
-      <button{{ attributes.addClass(classes, 'icon-only') }}>
-        <span class="sr-only">{{ label }}</span>
-        {{ icon }}
-      </button>
-    {% else %}
-      {% if icon_position == 'after' %}
-        <button{{ attributes.addClass(classes) }}>{{ label }}{{ icon }}</button>{{ children }}
+    {% if not input_group_button_processed %}
+      {% if icon_only %}
+        <button{{ attributes.addClass(classes, 'icon-only') }}>
+          <span class="sr-only">{{ label }}</span>
+          {{ icon }}
+        </button>
       {% else %}
-        <button{{ attributes.addClass(classes) }}>{{ icon }}{{ label }}</button>{{ children }}
+        {% if icon_position == 'after' %}
+          <button{{ attributes.addClass(classes) }}>{{ label }}{{ icon }}</button>{{ children }}
+        {% else %}
+          <button{{ attributes.addClass(classes) }}>{{ icon }}{{ label }}</button>{{ children }}
+        {% endif %}
       {% endif %}
+      {{ children }}
     {% endif %}
-    {{ children }}
   {% endblock %}
 {% endspaceless %}
