diff --git a/java/res/drawable/setup_step_action_color.xml b/java/res/color/setup_step_action_color.xml
similarity index 100%
rename from java/res/drawable/setup_step_action_color.xml
rename to java/res/color/setup_step_action_color.xml
diff --git a/java/res/drawable/ic_setup_step3_finish.xml b/java/res/drawable/ic_setup_finish.xml
similarity index 100%
rename from java/res/drawable/ic_setup_step3_finish.xml
rename to java/res/drawable/ic_setup_finish.xml
diff --git a/java/res/layout/setup_wizard.xml b/java/res/layout/setup_wizard.xml
index a922fda..0ee24c2 100644
--- a/java/res/layout/setup_wizard.xml
+++ b/java/res/layout/setup_wizard.xml
@@ -57,6 +57,7 @@
         android:layout_height="24dp"
         android:layout_below="@id/setup_step_bullets" />
     <FrameLayout
+        android:id="@+id/setup_steps_pane"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_below="@id/setup_step_indicator">
@@ -70,4 +71,10 @@
             android:id="@+id/setup_step3"
             layout="@layout/setup_step" />
     </FrameLayout>
+    <TextView
+        android:id="@+id/setup_finish"
+        android:text="@string/setup_finish_action"
+        style="@style/setupStepActionLabelStyle"
+        android:layout_below="@id/setup_steps_pane"
+        android:layout_marginTop="2dp" />
 </RelativeLayout>
diff --git a/java/res/values/setup-styles-common.xml b/java/res/values/setup-styles-common.xml
index 59a768a..4e4e4a5 100644
--- a/java/res/values/setup-styles-common.xml
+++ b/java/res/values/setup-styles-common.xml
@@ -44,7 +44,7 @@
         <item name="android:textSize">14sp</item>
     </style>
     <style name="setupStepActionLabelStyleCommon" parent="setupStepBaseStyle">
-        <item name="android:textColor">@drawable/setup_step_action_color</item>
+        <item name="android:textColor">@color/setup_step_action_color</item>
         <item name="android:background">@drawable/setup_step_action_background</item>
         <item name="android:layout_height">48dp</item>
         <item name="android:paddingLeft">12dp</item>
diff --git a/java/src/com/android/inputmethod/latin/setup/SetupActivity.java b/java/src/com/android/inputmethod/latin/setup/SetupActivity.java
index cb1de18..0622aef 100644
--- a/java/src/com/android/inputmethod/latin/setup/SetupActivity.java
+++ b/java/src/com/android/inputmethod/latin/setup/SetupActivity.java
@@ -20,7 +20,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.Message;
 import android.provider.Settings;
@@ -39,8 +38,9 @@
 
 import java.util.HashMap;
 
-public final class SetupActivity extends Activity {
+public final class SetupActivity extends Activity implements View.OnClickListener {
     private SetupStepIndicatorView mStepIndicatorView;
+    private TextView mActionFinish;
     private final SetupStepGroup mSetupSteps = new SetupStepGroup();
     private static final String STATE_STEP = "step";
     private int mStepNumber;
@@ -152,6 +152,19 @@
             }
         });
         mSetupSteps.addStep(STEP_3, step3);
+
+        mActionFinish = (TextView)findViewById(R.id.setup_finish);
+        TextViewCompatUtils.setCompoundDrawablesRelativeWithIntrinsicBounds(mActionFinish,
+                getResources().getDrawable(R.drawable.ic_setup_finish), null, null, null);
+        mActionFinish.setOnClickListener(this);
+    }
+
+    @Override
+    public void onClick(final View v) {
+        if (v == mActionFinish) {
+            finish();
+            return;
+        }
     }
 
     private void invokeSetupWizardOfThisIme() {
@@ -166,7 +179,8 @@
         final Intent intent = new Intent();
         intent.setClass(this, SettingsActivity.class);
         intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
-                | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                | Intent.FLAG_ACTIVITY_CLEAR_TOP
+                | Intent.FLAG_ACTIVITY_NO_HISTORY);
         startActivity(intent);
     }
 
@@ -278,6 +292,7 @@
         mStepIndicatorView.setIndicatorPosition(
                 getIndicatorPosition(mStepNumber, mSetupSteps.getTotalStep(), layoutDirection));
         mSetupSteps.enableStep(mStepNumber);
+        mActionFinish.setVisibility((mStepNumber == STEP_3) ? View.VISIBLE : View.GONE);
     }
 
     private static float getIndicatorPosition(final int step, final int totalStep,
@@ -337,8 +352,9 @@
 
         @Override
         public void onClick(final View v) {
-            if (mAction != null) {
+            if (v == mActionLabel && mAction != null) {
                 mAction.run();
+                return;
             }
         }
     }
