diff --git a/src/android/com/plugin/gcm/GCMIntentService.java b/src/android/com/plugin/gcm/GCMIntentService.java
index af0ae1a..30ba995 100644
--- a/src/android/com/plugin/gcm/GCMIntentService.java
+++ b/src/android/com/plugin/gcm/GCMIntentService.java
@@ -9,9 +9,11 @@
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.support.v4.app.NotificationCompat;
 import android.util.Log;
+import android.os.Build;
 
 import com.google.android.gcm.GCMBaseIntentService;
 
@@ -94,7 +96,7 @@ public void createNotification(Context context, Bundle extras) {
 
     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
       .setDefaults(defaults)
-      .setSmallIcon(context.getApplicationInfo().icon)
+      .setSmallIcon(getNotificationIcon(context))
       .setWhen(System.currentTimeMillis())
       .setContentTitle(extras.getString("title"))
       .setTicker(extras.getString("title"))
@@ -133,6 +135,18 @@ private static String getAppName(Context context) {
     return (String) appName;
   }
 
+  private int getNotificationIcon(Context context) {
+    boolean isLollipop = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
+
+    if (isLollipop) {
+      Resources r = getResources();
+
+      return r.getIdentifier("notification_icon", "raw", context.getPackageName());
+    }
+
+    return context.getApplicationInfo().icon;
+  }
+
   @Override
   public void onError(Context context, String errorId) {
     Log.e(TAG, "onError - errorId: " + errorId);