diff --git a/src/org/sflphone/client/CallActivity.java b/src/org/sflphone/client/CallActivity.java
index e237277..9bfee9b 100644
--- a/src/org/sflphone/client/CallActivity.java
+++ b/src/org/sflphone/client/CallActivity.java
@@ -359,7 +359,7 @@
             }
         };
 
-        new Timer().schedule(quit, 2000);
+        new Timer().schedule(quit, 1000);
 
     }
 
diff --git a/src/org/sflphone/fragments/AccountCreationFragment.java b/src/org/sflphone/fragments/AccountCreationFragment.java
index fd555be..62b3f28 100644
--- a/src/org/sflphone/fragments/AccountCreationFragment.java
+++ b/src/org/sflphone/fragments/AccountCreationFragment.java
@@ -3,10 +3,7 @@
 import java.util.HashMap;
 
 import org.sflphone.R;
-import org.sflphone.account.AccountDetailAdvanced;
 import org.sflphone.account.AccountDetailBasic;
-import org.sflphone.account.AccountDetailSrtp;
-import org.sflphone.account.AccountDetailTls;
 import org.sflphone.client.SettingsActivity;
 import org.sflphone.service.ISipService;
 
@@ -22,8 +19,8 @@
 import android.view.ViewGroup;
 import android.widget.EditText;
 import android.widget.TextView;
-import android.widget.Toast;
 import android.widget.TextView.OnEditorActionListener;
+import android.widget.Toast;
 
 public class AccountCreationFragment extends Fragment {
 
@@ -94,7 +91,7 @@
             }
         });
 
-//         inflatedView.findViewById(R.id.dev_account).setVisibility(View.GONE); // Hide this button in release apk
+        inflatedView.findViewById(R.id.dev_account).setVisibility(View.GONE); // Hide this button in release apk
         inflatedView.findViewById(R.id.dev_account).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -195,14 +192,14 @@
     }
 
     private void initCreation() {
-        
+
         try {
             HashMap<String, String> accountDetails = (HashMap<String, String>) mCallbacks.getService().getAccountTemplate();
             accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS, mAlias);
             accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_HOSTNAME, mHostname);
             accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME, mUsername);
             accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_PASSWORD, mPassword);
-            
+
             createNewAccount(accountDetails);
 
         } catch (RemoteException e) {
