public void updateProfile( Profile p ) {
		ArrayList<AchievementRecord> newAchRecs = new ArrayList<AchievementRecord>();
		newAchRecs.addAll( p.getAchievements() );

		for ( Map.Entry<Achievement, JCheckBox> entry : generalAchBoxes.entrySet() ) {
			String achId = entry.getKey().getId();
			JCheckBox box = entry.getValue();
			if ( box.isSelected() ) {
				// Add selected achievement recs if not already present.
				if ( !AchievementRecord.listContainsId( newAchRecs, achId ) ) {
					newAchRecs.add( new AchievementRecord(achId, difficulty) );
				}
			} else {
				// Remove achievement recs that are not selected.
				AchievementRecord.removeFromListById( newAchRecs, achId );
			}
		}

		p.setAchievements(newAchRecs);
	}