       Serial.println("Setting RGB " + data);
     #endif
   }
-  else if (String(topic) == subscriptions[2])
+  else if (topicStr == subscriptions[2])
   {
     parseFade(data);
     fadeActive = true;
   }
+  lastCallback = millis();
+  #if DEBUG
+  Serial.print("Callback prossesing time: ");
+  Serial.println(millis() - callbackTime);
+  #endif
 }
 
 



unsigned long fadeRcvTime, lastFadePWMMillis=0;
int curRGB[] = {0, 0, 0},
     wasRGB[3],
     toRGB[3];

}

void callback(char* topic, byte* payload, unsigned int length) {
  String topicStr = String(topic);
  unsigned long callbackTime = millis();
  String data = "";
  for (int i = 0; i < length; i++)
  {
