What's the correct format for submitting a null value to an integer field using metadata wrapper?
Have you tried to check if the value exists before setting it?

//.... (other fields in the form are here)
if (!empty($form_state['values']['field_salary'])) {
  $ewrapper-&gt;field_salary-&gt;set($form_state['values']['field_salary']);
}


This way you're not touching the value if it's not set.