diff --git a/src/org/sflphone/fragments/GeneralAccountFragment.java b/src/org/sflphone/fragments/GeneralAccountFragment.java
index b1075d0..8cf5ab0 100644
--- a/src/org/sflphone/fragments/GeneralAccountFragment.java
+++ b/src/org/sflphone/fragments/GeneralAccountFragment.java
@@ -3,6 +3,7 @@
 import org.sflphone.R;
 import org.sflphone.account.AccountDetail;
 import org.sflphone.model.Account;
+import org.sflphone.views.PasswordPreference;
 
 import android.app.Activity;
 import android.os.Bundle;
@@ -66,7 +67,16 @@
             if (pref != null) {
                 if (!p.isTwoState) {
                     ((EditTextPreference) pref).setText(p.mValue);
-                    pref.setSummary(p.mValue);
+                    if (pref instanceof PasswordPreference) {
+                        String tmp = new String();
+                        for (int i = 0; i < p.mValue.length(); ++i) {
+                            tmp += "*";
+                           
+                        }
+                        pref.setSummary(tmp);
+                    } else {
+                        pref.setSummary(p.mValue);
+                    }
                 } else {
                     ((CheckBoxPreference) pref).setChecked(p.isChecked());
                 }
