diff --git a/java/com/android/incallui/spam/SpamNotificationService.java b/java/com/android/incallui/spam/SpamNotificationService.java
index 82a943d..f7deae1 100644
--- a/java/com/android/incallui/spam/SpamNotificationService.java
+++ b/java/com/android/incallui/spam/SpamNotificationService.java
@@ -103,11 +103,18 @@
     ContactLookupResult.Type contactLookupResultType =
         ContactLookupResult.Type.forNumber(intent.getIntExtra(EXTRA_CONTACT_LOOKUP_RESULT_TYPE, 0));
 
-    DialerNotificationManager.cancel(this, notificationTag, notificationId);
-
     SpamSettings spamSettings = SpamComponent.get(this).spamSettings();
     SpamBlockingPromoHelper spamBlockingPromoHelper =
         new SpamBlockingPromoHelper(this, SpamComponent.get(this).spamSettings());
+    boolean shouldShowSpamBlockingPromo =
+        SpamNotificationActivity.ACTION_MARK_NUMBER_AS_SPAM.equals(intent.getAction())
+            && spamBlockingPromoHelper.shouldShowAfterCallSpamBlockingPromo();
+
+    // Cancel notification only if we are not showing spam blocking promo. Otherwise we will show
+    // spam blocking promo notification in place.
+    if (!shouldShowSpamBlockingPromo) {
+      DialerNotificationManager.cancel(this, notificationTag, notificationId);
+    }
 
     switch (intent.getAction()) {
       case SpamNotificationActivity.ACTION_MARK_NUMBER_AS_SPAM:
@@ -122,7 +129,7 @@
                 ReportingLocation.Type.FEEDBACK_PROMPT,
                 contactLookupResultType);
         new FilteredNumberAsyncQueryHandler(this).blockNumber(null, number, countryIso);
-        if (spamBlockingPromoHelper.shouldShowAfterCallSpamBlockingPromo()) {
+        if (shouldShowSpamBlockingPromo) {
           spamBlockingPromoHelper.showSpamBlockingPromoNotification(
               notificationTag,
               notificationId,
