Custom submit button callback overrides default callback? I am trying to accomplish the following functionality:

I have a profile2 registration form to which I have added a custom form element (just a submit button) using hook_form_alter().

The submit button has a #submit property set to a custom_callback function.

For debugging purposes, the callback function just displays a 

drupal_set_message('hello world');


The general idea is that the button is used to gather information from a webservice (in the callback function) and then fill the form with the returned values.

The user can then check the values and submit the user registration form.

When I click the custom submit button, it fires the custom callback. But when I click the user register form submit button, it also fires the custom callback?

I have checked the dpm of $form and the #submit properties are as follows:

$form['#submit'][0] == de default (correct) user registration callback
$form['custom']['#submit'][0] == de custom submit handler


So, any clues on why the default submit handler no longer works?

EDIT:

My form alter implementation looks like this (just add an image button)

   $form['custom'] = array(
    '#name' =&gt; 'custom',
    '#type' =&gt; 'image_button',
    '#src' =&gt; drupal_get_path('module', 'custom') . '/logo.png',
    '#value' =&gt; t('get data'),
    '#prefix' =&gt; '&lt;div class="button-wrapper"&gt;',
    '#attributes' =&gt; array('alt' =&gt; t('get data')),
    '#suffix' =&gt; '&lt;/div&gt;',
    //'#weight' =&gt; -99,
    '#submit' =&gt; array('custom_callback'),
  );


Thanks in advance!
Problem seems to be custom form element. Change it to :

$form['custom'] = array( 
    '#name' =&gt; 'custom', 
    '#type' =&gt; 'submit', 
    '#value' =&gt; t('get data'), 
    '#prefix' =&gt; '&lt;div class="button-wrapper"&gt;', 
    '#attributes' =&gt; array('alt' =&gt; t('get data')), 
    '#suffix' =&gt; '&lt;/div&gt;', 
    '#submit' =&gt; array('custom_callback'), 
  );