My edit profile page doensn't save all fields:
<form method="post" action="" accept-charset="UTF-8" enctype="multipart/form-data">
<input type="hidden" name="action" value="users/saveUser">
<input type="hidden" name="redirect" value="/users/{{ user.username }}">
<input type="hidden" name="userId" value="{{ user.id }}">
<fieldset>
<legend>Your Photo</legend>
{# Check to see if the user has a photo #}
{% if currentUser.photoUrl %}
<figure><img src="{{ currentUser.photoUrl(200) }}" /></figure>
{# If a photo exists, give the option to change the user photo #}
<div class="form-group">
<input type="file" name="userPhoto" value="Change Photo" class="form-control">
</div>
{% else %}
{# If no photo exists, give the option to upload a new one #}
<figure><img src="/assets/img/user.gif" /></figure>
<div class="form-group">
<input type="file" name="userPhoto" value="Upload" class="form-control">
</div>
{% endif %}
</fieldset>
<fieldset>
<legend>Your Login Details</legend>
<div class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" id="email" name="fields[email]" value="{{ user.email }}">
</div>
</fieldset>
<fieldset>
<legend>Your Personal Details</legend>
<div class="form-group">
<label for="firstName">First Name</label>
<input type="text" class="form-control" id="firstName" name="fields[firstName}" value="{{ user.firstName }}">
</div>
<div class="form-group">
<label for="lastName">Last Name</label>
<input type="text" class="form-control" id="lastName" name="fields[lastName]" value="{{ user.lastName }}">
</div>
<div class="form-group">
<label for="phoneNumber">Contact Number</label>
<input type="text" class="form-control" id="phoneNumber" name="fields[phoneNumber]" value="{{ user.phoneNumber}}">
</div>
</fieldset>
<fieldset>
{% set pets = craft.fields.getFieldbyHandle('pets') %}
<legend>Your Property Details</legend>
<label for="pets">{{ pets.instructions }}</label>
<select class="form-control margin-bottom" id="pets" name="fields[pets]">
{% for option in user.pets.options %}
<option {% if option.selected %}selected="selected"{% endif %}>{{ option }}</option>
{% endfor %}
</select>
{% set renting = craft.fields.getFieldbyHandle('renting') %}
<label for="renting">{{ renting.instructions }}</label>
<select class="form-control margin-bottom" id="renting" name="fields[renting]">
{% for option in user.renting.options %}
<option {% if option.selected %}selected="selected"{% endif %}>{{ option }}</option>
{% endfor %}
</select>
</fieldset>
<input type="submit" class="btn btn-primary pull-right margin-top" value="Save Profile">
</form>
It only saves the last two fields which means that a user can't change their email address, name or phone number.
I've recently updated Craft to the latest build (Craft Pro 2.1.2566) and also changed user/saveProfile to user/saveUser.