diff --git a/ring-android/app/src/main/java/cx/ring/account/ConfirmRevocationDialog.java b/ring-android/app/src/main/java/cx/ring/account/ConfirmRevocationDialog.java
index 7eb5355..5b97ac0 100644
--- a/ring-android/app/src/main/java/cx/ring/account/ConfirmRevocationDialog.java
+++ b/ring-android/app/src/main/java/cx/ring/account/ConfirmRevocationDialog.java
@@ -2,6 +2,7 @@
  *  Copyright (C) 2017 Savoir-faire Linux Inc.
  *
  *  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *          Adrien Beraud <adrien.beraud@savoirfairelinux.com>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -73,12 +74,6 @@
 
         mDeviceId = getArguments().getString(DEVICEID_KEY);
 
-        AlertDialog dialog = (AlertDialog) getDialog();
-        if (dialog != null) {
-            dialog.setView(view);
-            dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
-        }
-
         final AlertDialog result = new AlertDialog.Builder(getActivity())
                 .setView(view)
                 .setMessage(getString(R.string.revoke_device_message, mDeviceId))
@@ -106,7 +101,7 @@
                 });
             }
         });
-
+        result.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
         return result;
     }
 
diff --git a/ring-android/app/src/main/java/cx/ring/account/DeviceAdapter.java b/ring-android/app/src/main/java/cx/ring/account/DeviceAdapter.java
index b51b78a..0eb61ce 100644
--- a/ring-android/app/src/main/java/cx/ring/account/DeviceAdapter.java
+++ b/ring-android/app/src/main/java/cx/ring/account/DeviceAdapter.java
@@ -40,6 +40,7 @@
 
     public interface DeviceRevocationListener {
         void onDeviceRevocationAsked(String deviceId);
+        void onDeviceRename();
     }
 
     public DeviceAdapter(Context c, Map<String, String> devices, String currentDeviceId,
@@ -81,17 +82,29 @@
         if (view == null) {
             view = LayoutInflater.from(mContext).inflate(R.layout.item_device, parent, false);
         }
+        boolean isCurrentDevice = mDevices.get(i).getKey().contentEquals(mCurrentDeviceId);
 
         TextView devId = (TextView) view.findViewById(R.id.txt_device_id);
         devId.setText(mDevices.get(i).getKey());
 
         TextView devName = (TextView) view.findViewById(R.id.txt_device_label);
         devName.setText(mDevices.get(i).getValue());
-
         ImageButton revokeButton = (ImageButton) view.findViewById(R.id.revoke_button);
-
-        boolean isCurrentDevice = mDevices.get(i).getKey().contentEquals(mCurrentDeviceId);
-        revokeButton.setVisibility(isCurrentDevice ? View.INVISIBLE : View.VISIBLE);
+        ImageButton editButton = (ImageButton) view.findViewById(R.id.rename_button);
+        revokeButton.setVisibility(isCurrentDevice ? View.GONE : View.VISIBLE);
+        editButton.setVisibility(isCurrentDevice ? View.VISIBLE : View.GONE);
+        TextView thisDeviceText = (TextView) view.findViewById(R.id.txt_device_thisflag);
+        thisDeviceText.setVisibility(isCurrentDevice ? View.VISIBLE : View.GONE);
+        if (isCurrentDevice) {
+            editButton.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    if (mListener != null) {
+                        mListener.onDeviceRename();
+                    }
+                }
+            });
+        }
 
         revokeButton.setOnClickListener(new View.OnClickListener() {
             @Override
diff --git a/ring-android/app/src/main/java/cx/ring/account/RenameDeviceDialog.java b/ring-android/app/src/main/java/cx/ring/account/RenameDeviceDialog.java
new file mode 100644
index 0000000..db849cf
--- /dev/null
+++ b/ring-android/app/src/main/java/cx/ring/account/RenameDeviceDialog.java
@@ -0,0 +1,130 @@
+/*
+ *  Copyright (C) 2017 Savoir-faire Linux Inc.
+ *
+ *  Author: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+package cx.ring.account;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.support.design.widget.TextInputLayout;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import butterknife.BindString;
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnEditorAction;
+import cx.ring.R;
+
+public class RenameDeviceDialog extends DialogFragment {
+    static final String TAG = RenameDeviceDialog.class.getSimpleName();
+    public static final String DEVICENAME_KEY = "devicename_key";
+
+    public interface RenameDeviceListener {
+        void onDeviceRename(String newName);
+    }
+
+    @BindView(R.id.ring_device_name_txt_box)
+    public TextInputLayout mDeviceNameTxtBox;
+
+    @BindString(R.string.account_device_name_empty)
+    protected String mPromptDeviceName;
+
+    @BindView(R.id.ring_device_name_txt)
+    public EditText mDeviceNameTxt;
+
+    private RenameDeviceListener mListener = null;
+
+    public void setListener(RenameDeviceListener listener) {
+        mListener = listener;
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_device_rename, null);
+        ButterKnife.bind(this, view);
+
+        mDeviceNameTxt.setText(getArguments().getString(DEVICENAME_KEY));
+
+        final AlertDialog dialog = new AlertDialog.Builder(getActivity())
+                .setView(view)
+                .setTitle(R.string.rename_device_title)
+                .setMessage(R.string.rename_device_message)
+                .setPositiveButton(R.string.rename_device_button, null)
+                .setNegativeButton(android.R.string.cancel, null)
+                .create();
+        dialog.setOnShowListener(new DialogInterface.OnShowListener() {
+            @Override
+            public void onShow(final DialogInterface dialog) {
+                Button button = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE);
+                button.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        if (validate()) {
+                            dialog.dismiss();
+                        }
+                    }
+                });
+            }
+        });
+        dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+        return dialog;
+    }
+
+    public boolean checkInput(String input) {
+        if (input.isEmpty()) {
+            mDeviceNameTxtBox.setErrorEnabled(true);
+            mDeviceNameTxtBox.setError(mPromptDeviceName);
+            return false;
+        } else {
+            mDeviceNameTxtBox.setErrorEnabled(false);
+            mDeviceNameTxtBox.setError(null);
+        }
+        return true;
+    }
+
+    boolean validate() {
+        String input = mDeviceNameTxt.getText().toString().trim();
+        if (checkInput(input) && mListener != null) {
+            mListener.onDeviceRename(input);
+            return true;
+        }
+        return false;
+    }
+
+    @OnEditorAction({R.id.ring_device_name_txt})
+    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+        if (v == mDeviceNameTxt) {
+            if (actionId == EditorInfo.IME_ACTION_DONE) {
+                boolean validationResult = validate();
+                if (validationResult) {
+                    getDialog().dismiss();
+                }
+                return validationResult;
+            }
+        }
+        return false;
+    }
+}
diff --git a/ring-android/app/src/main/java/cx/ring/account/RingAccountSummaryFragment.java b/ring-android/app/src/main/java/cx/ring/account/RingAccountSummaryFragment.java
index ab2e0e5..df5af32 100644
--- a/ring-android/app/src/main/java/cx/ring/account/RingAccountSummaryFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/account/RingAccountSummaryFragment.java
@@ -67,6 +67,7 @@
 
 public class RingAccountSummaryFragment extends Fragment implements BackHandlerInterface,
         RegisterNameDialog.RegisterNameDialogListener,
+        RenameDeviceDialog.RenameDeviceListener,
         DeviceAdapter.DeviceRevocationListener,
         ConfirmRevocationDialog.ConfirmRevocationListener,
         RingAccountSummaryView {
@@ -478,4 +479,21 @@
         dialog.setListener(this);
         dialog.show(getFragmentManager(), FRAGMENT_DIALOG_REVOCATION);
     }
+
+    @Override
+    public void onDeviceRename() {
+        final String dev_name = mRingAccountSummaryPresenter.getDeviceName();
+        RenameDeviceDialog dialog = new RenameDeviceDialog();
+        Bundle args = new Bundle();
+        args.putString(RenameDeviceDialog.DEVICENAME_KEY, dev_name);
+        dialog.setArguments(args);
+        dialog.setListener(this);
+        dialog.show(getFragmentManager(), TAG);
+    }
+
+    @Override
+    public void onDeviceRename(String newName) {
+        Log.d(TAG, "onDeviceRename " + mRingAccountSummaryPresenter.getDeviceName() + " -> " + newName);
+        mRingAccountSummaryPresenter.renameDevice(newName);
+    }
 }
diff --git a/ring-android/app/src/main/res/layout/dialog_device_rename.xml b/ring-android/app/src/main/res/layout/dialog_device_rename.xml
new file mode 100644
index 0000000..b7a04a3
--- /dev/null
+++ b/ring-android/app/src/main/res/layout/dialog_device_rename.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:paddingTop="16dp">
+
+    <android.support.design.widget.TextInputLayout
+        android:id="@+id/ring_device_name_txt_box"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="16dp"
+        android:layout_marginLeft="12dp"
+        android:layout_marginRight="12dp">
+
+        <android.support.design.widget.TextInputEditText
+            android:id="@+id/ring_device_name_txt"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/account_rename_device_hint"
+            android:imeOptions="actionDone"
+            android:inputType="textCapWords"
+            android:lines="1"
+            android:maxLines="1" />
+    </android.support.design.widget.TextInputLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_device_list.xml b/ring-android/app/src/main/res/layout/frag_device_list.xml
index 286613f..4672b3d 100644
--- a/ring-android/app/src/main/res/layout/frag_device_list.xml
+++ b/ring-android/app/src/main/res/layout/frag_device_list.xml
@@ -92,14 +92,14 @@
                     style="@style/Subheader"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:ellipsize="end"
+                    android:ellipsize="middle"
                     android:gravity="center_vertical"
                     android:lines="1"
                     android:paddingBottom="8dp"
                     android:paddingLeft="16dp"
                     android:paddingRight="16dp"
                     android:paddingTop="8dp"
-                    android:textIsSelectable="false"
+                    android:singleLine="true"
                     android:textStyle="bold"
                     tools:text="ring:8F29045378ACA68F2ACA2346078ACA68F2ACA290" />
 
@@ -189,6 +189,7 @@
                         android:paddingStart="16dp"
                         android:paddingTop="4dp"
                         android:textAlignment="viewStart"
+                        android:textIsSelectable="true"
                         tools:text="blockchain_name" />
 
                 </LinearLayout>
@@ -241,8 +242,8 @@
     </ScrollView>
 
     <include
-        layout="@layout/add_new_device_layout"
         android:id="@+id/add_new_device"
+        layout="@layout/add_new_device_layout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true" />
diff --git a/ring-android/app/src/main/res/layout/item_account.xml b/ring-android/app/src/main/res/layout/item_account.xml
index 5d5480a..f51179a 100644
--- a/ring-android/app/src/main/res/layout/item_account.xml
+++ b/ring-android/app/src/main/res/layout/item_account.xml
@@ -41,7 +41,8 @@
         android:layout_toRightOf="@+id/account_photo"
         android:layout_toStartOf="@+id/error_indicator"
         android:ellipsize="end"
-        android:textAppearance="@style/ListPrimary" />
+        android:textAppearance="@style/ListPrimary"
+        tools:text="Ring account" />
 
     <TextView
         android:id="@+id/account_host"
@@ -57,14 +58,14 @@
         android:ellipsize="end"
         android:maxLines="1"
         android:singleLine="true"
-        android:textAppearance="@style/ListSecondary" />
+        android:textAppearance="@style/ListSecondary"
+        tools:text="ring:b982672502b9f1236a68353d74734cb82f9d1fab" />
 
     <android.support.v7.widget.AppCompatImageView
         android:id="@+id/error_indicator"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentEnd="true"
-        android:layout_alignParentRight="false"
         android:layout_centerVertical="true"
         android:layout_marginLeft="16dp"
         android:layout_marginStart="16dp"
@@ -72,6 +73,7 @@
         android:focusable="false"
         android:focusableInTouchMode="false"
         android:src="@drawable/ic_error_white"
-        android:tint="@android:color/holo_red_light" />
+        android:tint="@android:color/holo_red_light"
+        android:layout_alignParentRight="true" />
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/item_device.xml b/ring-android/app/src/main/res/layout/item_device.xml
index e9b68d1..0027516 100644
--- a/ring-android/app/src/main/res/layout/item_device.xml
+++ b/ring-android/app/src/main/res/layout/item_device.xml
@@ -41,8 +41,12 @@
         android:layout_centerVertical="true"
         android:layout_marginLeft="56dp"
         android:layout_marginStart="56dp"
+        android:layout_toLeftOf="@+id/txt_device_thisflag"
+        android:layout_toStartOf="@+id/txt_device_thisflag"
+        android:ellipsize="end"
+        android:lines="1"
         android:textAppearance="@style/ListPrimary"
-        tools:text="8E24CCF4" />
+        tools:text="My device" />
 
     <TextView
         android:id="@+id/txt_device_id"
@@ -51,13 +55,39 @@
         android:layout_alignLeft="@id/txt_device_label"
         android:layout_alignStart="@+id/txt_device_label"
         android:layout_below="@id/txt_device_label"
-        android:layout_toLeftOf="@+id/revoke_button"
-        android:layout_toStartOf="@+id/revoke_button"
+        android:layout_toLeftOf="@+id/rename_button"
+        android:layout_toStartOf="@+id/rename_button"
         android:ellipsize="middle"
         android:maxLines="1"
-        android:maxWidth="150dp"
         android:textAppearance="@style/TextAppearance.AppCompat.Caption"
-        tools:text="e3806a4963993ed1e8adc5c0ed9809c354dfc872" />
+        tools:text="b982672502b9f1236a68353d74734cb82f9d1fab" />
+
+    <TextView
+        android:id="@+id/txt_device_thisflag"
+        style="@style/TextAppearance.AppCompat.Small"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignBaseline="@+id/txt_device_label"
+        android:layout_marginLeft="8dp"
+        android:layout_marginStart="8dp"
+        android:layout_toLeftOf="@+id/rename_button"
+        android:layout_toStartOf="@+id/rename_button"
+        android:text="@string/account_device_this_indicator"
+        android:textStyle="italic" />
+
+    <ImageButton
+        android:id="@+id/rename_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignWithParentIfMissing="true"
+        android:layout_centerVertical="true"
+        android:layout_toLeftOf="@+id/revoke_button"
+        android:layout_toStartOf="@+id/revoke_button"
+        android:background="?selectableItemBackgroundBorderless"
+        android:contentDescription="@string/account_device_revoke"
+        android:padding="8dp"
+        android:tint="@color/black"
+        app:srcCompat="@drawable/ic_action_edit" />
 
     <ImageButton
         android:id="@+id/revoke_button"
diff --git a/ring-android/app/src/main/res/values/strings_account.xml b/ring-android/app/src/main/res/values/strings_account.xml
index 647d338..01993b6 100644
--- a/ring-android/app/src/main/res/values/strings_account.xml
+++ b/ring-android/app/src/main/res/values/strings_account.xml
@@ -231,5 +231,11 @@
     <string name="revoke_device_message">Are you sure you want to revoke %1$s ?</string>
     <string name="revoke_device_wait_title">Please wait…</string>
     <string name="revoke_device_wait_message">Revoking device</string>
+    <string name="rename_device_title">Rename this device</string>
+    <string name="rename_device_message">Choose a new name to identify this device in your Ring account</string>
+    <string name="rename_device_button">Rename device</string>
+    <string name="account_rename_device_hint">Choose new device name</string>
+    <string name="account_device_name_empty">Device name can\'t be empty</string>
+    <string name="account_device_this_indicator">this device</string>
 
 </resources>
