diff --git a/app/src/main/java/org/schabi/newpipe/settings/SettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SettingsFragment.java
index a6466daf9..c4eae1baf 100644
--- a/app/src/main/java/org/schabi/newpipe/settings/SettingsFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/settings/SettingsFragment.java
@@ -1,27 +1,27 @@
 package org.schabi.newpipe.settings;
 
 import android.app.Activity;
-import android.app.ListActivity;
 import android.content.ClipData;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
-import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceManager;
 import android.preference.PreferenceScreen;
+import android.support.v7.app.AlertDialog;
 
 import com.nononsenseapps.filepicker.FilePickerActivity;
 
 import org.schabi.newpipe.App;
+import org.schabi.newpipe.MainActivity;
 import org.schabi.newpipe.R;
 
 import java.util.ArrayList;
-import java.util.Objects;
 
 import info.guardianproject.netcipher.proxy.OrbotHelper;
 
@@ -98,6 +98,8 @@ public class SettingsFragment  extends PreferenceFragment
         downloadPathAudioPreference = findPreference(DOWNLOAD_PATH_AUDIO_PREFERENCE);
         themePreference = findPreference(THEME);
 
+        final String currentTheme = defaultPreferences.getString(THEME, "Light");
+
         prefListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
             @Override
             public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
@@ -139,8 +141,27 @@ public class SettingsFragment  extends PreferenceFragment
                 }
                 else if (key == THEME)
                 {
-                    String theme = sharedPreferences.getString(THEME, "Light");
-                    themePreference.setSummary(theme);
+                    String selectedTheme = sharedPreferences.getString(THEME, "Light");
+                    themePreference.setSummary(selectedTheme);
+
+                    if(!selectedTheme.equals(currentTheme)) { // If it's not the current theme
+                        new AlertDialog.Builder(activity)
+                                .setTitle(R.string.restart_title)
+                                .setMessage(R.string.msg_restart)
+                                .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog, int which) {
+                                        Intent intentToMain = new Intent(activity, MainActivity.class);
+                                        intentToMain.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
+                                        activity.startActivity(intentToMain);
+
+                                        activity.finish();
+                                        Runtime.getRuntime().exit(0);
+                                    }
+                                })
+                                .setNegativeButton(R.string.later, null)
+                                .create().show();
+                    }
                 }
                 updateSummary();
             }
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d7b20ebb5..71c11fd50 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -86,6 +86,8 @@
     <string name="error_report_title">Error report</string>
     <string name="all">All</string>
     <string name="channel">Channel</string>
+    <string name="yes">Yes</string>
+    <string name="later">Later</string>
 
     <!-- error strings -->
     <string name="general_error">Error</string>
@@ -156,6 +158,7 @@
     <string name="short_thousand">K</string>
     <string name="short_million">M</string>
     <string name="short_billion">B</string>
+    <string name="restart_title">Restart</string>
 
     <!-- Missions -->
     <string name="start">Start</string>
@@ -184,6 +187,7 @@
     <string name="msg_wait">Please wait…</string>
     <string name="msg_copied">Copied to clipboard.</string>
     <string name="no_available_dir">Please select an available download directory.</string>
+    <string name="msg_restart">You have to restart the application to apply the theme.\n\nDo you want to restart now?</string>
 
     <!-- Checksum types -->
     <string name="md5" translatable="false">MD5</string>