variable or field 'name' declared void Help please

Hello, I am trying to insert a web server taken from here (part 16) into my surveillance code and am getting this error. I then reduced the code to the minimal still causing the same error message

int a=0;
#include <Ethernet.h>

void setup(){}
void loop() {}


void XML_response(EthernetClient cl){}

error message: variable or field 'XML_response' declared void

Could someone show me what I am doing wrong?
Thanks in advance for your help

It compiles for me. 1.6.5

#include <Ethernet.h>
#include <SPI.h>

int a = 0;
void setup(){}
void loop() {}


void XML_response(EthernetClient cl){}

IDE 1.6.5

int a=0;
#include <Ethernet.h>
#include <SPI.h>
void setup(){}
void loop() {}


void XML_response(EthernetClient cl){}

ajeter:6: error: variable or field 'XML_response' declared void
ajeter:6: error: 'EthernetClient' was not declared in this scope
ajeter.ino:10:6: warning: unused parameter 'cl' [-Wunused-parameter]
variable or field 'XML_response' declared void

Compiled for me under 1.6.6.

I wouldn't normally put anything before my #includes.
YMMV.

What version IDE are you using?

@aarg: Post #3 suggests 1.6.5

Is there more code? Please verify that you didn't miss anything when you posted.

AWOL:
I wouldn't normally put anything before my #includes.
YMMV.

That is necessary if there are #ifdef statements used. The IDE has some strange ideas where to put the #include statements it adds. Defining a useless variable as the first line of the file gives the IDE a known insertion point.

AWOL:
I wouldn't normally put anything before my #includes.
YMMV.

w/o the assignment it compiles with warnings only

yes, code compiles if no assignment before the #include (!)

Before the merge the code compiled wo problems dispite early assignments. After the merge of the server it was rejected at the function déclaration