diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5302b0d..ee9418a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -598,6 +598,12 @@
         Calls from this number will be blocked, but the caller may still be able to leave you voicemails.
     </string>
 
+    <!-- Confirmation dialog message for blocking a number with new filtering enabled.
+         [CHAR LIMIT=NONE] -->
+    <string name="block_number_confirmation_message_new_filtering">
+        You will no longer receive calls or texts from this number.
+    </string>
+
     <!-- Block number alert dialog button [CHAR LIMIT=32] -->
     <string name="block_number_ok">BLOCK</string>
 
@@ -605,12 +611,6 @@
     <string name="unblock_number_confirmation_title">Unblock
         <xliff:g id="number" example="(555) 555-5555">%1$s</xliff:g>?</string>
 
-    <!-- Confirmation dialog message for unblocking a number.
-         [CHAR LIMIT=NONE] -->
-    <string name="unblock_number_confirmation_message">
-         This number will no longer be blocked from calling you.
-    </string>
-
     <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
     <string name="unblock_number_ok">UNBLOCK</string>
 
diff --git a/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java b/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
index de4fe99..ee4c607 100644
--- a/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
+++ b/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
@@ -32,6 +32,7 @@
 
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.R;
+import com.android.dialer.compat.FilteredNumberCompat;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnBlockNumberListener;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnUnblockNumberListener;
@@ -156,13 +157,15 @@
                     R.string.unblock_number_confirmation_title,
                     mDisplayNumber);
             okText = getString(R.string.unblock_number_ok);
-            message = getString(R.string.unblock_number_confirmation_message);
+            message = "";
         } else {
             title = ContactDisplayUtils.getTtsSpannedPhoneNumber(getResources(),
                     R.string.block_number_confirmation_title,
                     mDisplayNumber);
             okText = getString(R.string.block_number_ok);
-            if (mVoicemailEnabledChecker.isVisualVoicemailEnabled()) {
+            if (FilteredNumberCompat.useNewFiltering()) {
+                message = getString(R.string.block_number_confirmation_message_new_filtering);
+            } else if (mVoicemailEnabledChecker.isVisualVoicemailEnabled()) {
                 message = getString(R.string.block_number_confirmation_message_vvm);
             } else {
                 message = getString(R.string.block_number_confirmation_message_no_vvm);
