diff --git a/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java b/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java
index 75d01fb7f4435daa0ef4e3fbfff5e14160d26660..6c70d3e0aa532ebad0013a00086d41e7ee57e2a4 100644
--- a/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java
+++ b/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java
@@ -74,6 +74,7 @@ import ezvcard.parameter.ImageType;
 import ezvcard.property.FormattedName;
 import ezvcard.property.Photo;
 import ezvcard.property.RawProperty;
+import ezvcard.property.Uid;
 
 public class AccountWizard extends AppCompatActivity implements Observer<ServiceEvent> {
     static final String TAG = AccountWizard.class.getName();
@@ -293,6 +294,8 @@ public class AccountWizard extends AppCompatActivity implements Observer<Service
     public void saveProfile(String accountID) {
         VCard vcard = new VCard();
         vcard.setFormattedName(new FormattedName(mFullname));
+        String ringId = mAccountService.getCurrentAccount().getUsername();
+        vcard.setUid(new Uid(ringId));
         ByteArrayOutputStream stream = new ByteArrayOutputStream();
         if (mPhotoProfile != null) {
             mPhotoProfile.compress(Bitmap.CompressFormat.PNG, 100, stream);
diff --git a/ring-android/libringclient/src/main/java/cx/ring/navigation/RingNavigationPresenter.java b/ring-android/libringclient/src/main/java/cx/ring/navigation/RingNavigationPresenter.java
index 25b532da712a3652f00ab3e1b8cf2690738c3619..71c66eabcb7804748291901329187cf41b19dbde 100644
--- a/ring-android/libringclient/src/main/java/cx/ring/navigation/RingNavigationPresenter.java
+++ b/ring-android/libringclient/src/main/java/cx/ring/navigation/RingNavigationPresenter.java
@@ -38,6 +38,7 @@ import ezvcard.VCard;
 import ezvcard.property.FormattedName;
 import ezvcard.property.Photo;
 import ezvcard.property.RawProperty;
+import ezvcard.property.Uid;
 
 public class RingNavigationPresenter extends RootPresenter<GenericView<RingNavigationViewModel>> implements Observer<ServiceEvent> {
 
@@ -87,10 +88,12 @@ public class RingNavigationPresenter extends RootPresenter<GenericView<RingNavig
 
     public void saveVCard(String username, Photo photo) {
         String accountId = mAccountService.getCurrentAccount().getAccountID();
+        String ringId = mAccountService.getCurrentAccount().getUsername();
         File filesDir = mDeviceRuntimeService.provideFilesDir();
 
         VCard vcard = VCardUtils.loadLocalProfileFromDisk(filesDir, accountId);
         vcard.setFormattedName(username);
+        vcard.setUid(new Uid(ringId));
         vcard.removeProperties(Photo.class);
         vcard.addPhoto(photo);
         vcard.removeProperties(RawProperty.class);
diff --git a/ring-android/libringclient/src/main/java/cx/ring/utils/VCardUtils.java b/ring-android/libringclient/src/main/java/cx/ring/utils/VCardUtils.java
index e22bb500004226c706eec204626fbb2863932761..6549b0f0f17b3401cc7b6137913dd8bd22a0b2ff 100644
--- a/ring-android/libringclient/src/main/java/cx/ring/utils/VCardUtils.java
+++ b/ring-android/libringclient/src/main/java/cx/ring/utils/VCardUtils.java
@@ -231,7 +231,7 @@ public class VCardUtils {
 
     private static VCard setupDefaultProfile(File filesDir, String accountId) {
         VCard vcard = new VCard();
-        vcard.setUid(new Uid(String.valueOf(System.currentTimeMillis())));
+        vcard.setUid(new Uid(accountId));
         saveLocalProfileToDisk(vcard, accountId, filesDir);
         return vcard;
     }
diff --git a/ring-android/libringclient/src/main/java/cx/ring/wizard/SIPCreationPresenter.java b/ring-android/libringclient/src/main/java/cx/ring/wizard/SIPCreationPresenter.java
index ea417728e3473c2e8f4e79143c60742a91f5a056..90a499cf85e55c0484837afcde0064f3947dcad7 100644
--- a/ring-android/libringclient/src/main/java/cx/ring/wizard/SIPCreationPresenter.java
+++ b/ring-android/libringclient/src/main/java/cx/ring/wizard/SIPCreationPresenter.java
@@ -41,6 +41,7 @@ import cx.ring.utils.VCardUtils;
 import ezvcard.VCard;
 import ezvcard.property.FormattedName;
 import ezvcard.property.RawProperty;
+import ezvcard.property.Uid;
 
 public class SIPCreationPresenter extends RootPresenter<SIPCreationView> implements Observer<ServiceEvent> {
 
@@ -217,6 +218,8 @@ public class SIPCreationPresenter extends RootPresenter<SIPCreationView> impleme
             formattedName = mAccount.getAlias();
         }
         vcard.setFormattedName(new FormattedName(formattedName));
+        String vcardUid = formattedName + accountID;
+        vcard.setUid(new Uid(vcardUid));
         vcard.removeProperties(RawProperty.class);
         VCardUtils.saveLocalProfileToDisk(vcard, accountID, mDeviceService.provideFilesDir());
     }