Comparing Print to EthernetClient

I have a project where I listen for commands from the Serial port and any active EthernetClients. Some of the commands needs to know if the request came from the Serial port or an EthernetClient. With an older version of Arduino I passed pointers to a function so that it could compare a Print object to a Print object.

boolean comparePrintObj(Print* item1, Print* item2){
  if (item1 == item2){
    return true;
  }
  return false;
}

My function for parsing the received commands is like this.
boolean parsingReceivedData(Print* _dataSource){
I pass a pointer to Serial or any of the active EthernetClients when I call the parsing function.

And I call my compare function from in the parsing function like this (client[t] is global).
if (comparePrintObj(_dataSource, &Serial)){
or
if (comparePrintObj(&client[t], _dataSource)){

Now with Arduino 1.6.7 and the newest Ethernet library (v1.1.1), my sketch compiles but comparePrintObj never returns true. I use code from the AdvancedChatServer example (from the Ethernet library) to identify new socket connections and remember them but it doesn’t seem to be working quite like I expect. I guess I could just pass a byte from function to function to track which object (Serial or EthernetClient) the request originated from.

void checkEthernet(){
  EthernetClient clnt = server.available();
  if (clnt){
    boolean newClient = true;
    byte a = NULL;
    for (byte i=0;i<4;i++){
      if (client[i] == clnt){
        newClient = false;
        a = i;
        Serial.print("\r\n!newClient");
        break;
      }
    }
    if (newClient){
      for (byte i = 0; i < 4; i++){
        if (!client[i] && client[i] != clnt){
          client[i] = clnt;
          a = i;
          connCount++;
          connStatus[i] = 1;
          debugOn[i] = 0;
          printClientWelcomeMsg(&Serial, i);
          break;
        }
      }
    }
    if (clnt.available()){
      if (checkForData(&clnt, a)){
        sendDebug(F("\r\ncheckEth=1"));
      }
    }
  }
  
  for (byte i = 0; i < 4; i++) {
    if (!client[i].connected() && connStatus[i]) {
      closeEthClient(&client[i], i);
    }
  }
}

The main reasons for this is to turn debug messages on/off per socket connection and close the respective socket connection for certain data requests, such as web browser connections.