code: function(resp) {
          this.layer.destroyFeatures();
          if (resp.success()) {
              var features = resp.features;
              if(features && features.length > 0) {
                  var remote = this.layer.projection;
                  var local = this.layer.map.getProjectionObject();
                  if(!local.equals(remote)) {
                      var geom;
                      for(var i=0, len=features.length; i<len; ++i) {
                          geom = features[i].geometry;
                          if(geom) {
                              geom.transform(remote, local);
                          }
                      }
                  }
                  this.layer.addFeatures(features);
              }
          } else {
              this.bounds = null;
          }
          this.response = null;
          this.layer.events.triggerEvent("loadend", {response: resp});
      }
docs: Method: merge
  Given a list of features, determine which ones to add to the layer.
  If the layer projection differs from the map projection, features
  will be transformed from the layer projection to the map projection.
  
  Parameters:
  resp - {<OpenLayers.Protocol.Response>} The response object passed
  by the protocol.