diff --git a/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java b/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java
index 35b9dbe..eb51690 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java
@@ -207,7 +207,7 @@
             Log.i(TAG, "onStop: Unbinding service...");
             unbindService(mConnection);
             mBound = false;
-        } 
+        }
     }
 
     @Override
@@ -219,10 +219,31 @@
         // super.onBackPressed();
     }
 
+    private void updateAccountDetails(HashMap<String, String> accountDetails, AccountDetail det) {
+        for(AccountDetail.PreferenceEntry p : det.getDetailValues()) {
+            Preference pref = mPreferenceManager.findPreference(p.mKey);
+            if(pref != null) {
+                if(p.isTwoState) {
+                    CheckBoxPreference boxPref = (CheckBoxPreference) pref;
+                    accountDetails.put(p.mKey, boxPref.isChecked() ? "true" : "false");
+                }
+                else {
+                    EditTextPreference textPref = (EditTextPreference) pref;
+                    accountDetails.put(p.mKey, textPref.getText());
+                }
+            }
+        }
+    }
+
     private void createNewAccount() {
 
         HashMap<String, String> accountDetails = new HashMap<String, String>();
 
+        updateAccountDetails(accountDetails, basicDetails);
+        updateAccountDetails(accountDetails, advancedDetails);
+        updateAccountDetails(accountDetails, srtpDetails);
+        updateAccountDetails(accountDetails, tlsDetails);
+/*
         for(String s : basicDetails.getDetailKeys()) {
             EditTextPreference pref = (EditTextPreference) mPreferenceManager.findPreference(s);
             if(pref != null) {
@@ -254,6 +275,7 @@
                 accountDetails.put(s, pref.getText());
             }
         }
+*/
 
         try {
             Log.i(TAG, "ADD ACCOUNT");
diff --git a/src/com/savoirfairelinux/sflphone/utils/AccountDetailAdvanced.java b/src/com/savoirfairelinux/sflphone/utils/AccountDetailAdvanced.java
index f6098da..79250c0 100644
--- a/src/com/savoirfairelinux/sflphone/utils/AccountDetailAdvanced.java
+++ b/src/com/savoirfairelinux/sflphone/utils/AccountDetailAdvanced.java
@@ -102,7 +102,7 @@
         privateMap.put(CONFIG_STUN_SERVER,
                        new PreferenceEntry(CONFIG_STUN_SERVER, R.string.account_stun_server_label));
         privateMap.put(CONFIG_STUN_ENABLE,
-                       new PreferenceEntry(CONFIG_STUN_ENABLE, R.string.account_stun_enable_label));
+                       new PreferenceEntry(CONFIG_STUN_ENABLE, R.string.account_stun_enable_label, true));
     }
 
     public Set<String> getDetailKeys()
