Problem with SPI devices

Hello:
I've got one Arduino Mega 2560 R3, and i've conected it throught SPI to the following SPI devices:
1.- Ethernet SHield(W5100), with SD card reader: Ethernet CS is 10, and SD Card's CS is 42. SD card's
CS on Mega is 42, but i've attached with a wire mega's 42 pin to ethernet shield's pin 4
2.- Another SD card reader (Catalex Micro SD card reader), which CS pin is attached to pin 53.
3.- One SPI Flash Memory (Micron N25Q128), which CS is attached to pin 43.

In order to test all these devices i've used arduino's examples included on its libraries, and always add the lines of pinMode(CS,OUTPUT), and digitalWrite(CS,HIGH), for each device's CS at the begining of Setup

If i power it, and use on arduino an example of the library of SD card reader 2, i have nno problem reading SD card of catalex, and sometime can read SD card on ethernet shield, but if i load one sketch to see manufacturer of Flash memory alwys get wrong values, and ethernet shield is not working properly, DHCP doesn't work, and giving one static IP only works changing SPI clock.

If i remove Catalex SD card reader from the SPI bus then the SD card reader on ethernet shield works fine, and if i test manufacturer of Flash memory also works fine, but ethernet continues working the same way(no DHCP, and static IP a few times works, and most of the time no).

If i only have connected to SPI bus the ethernet shield, then card reader works, and ethernet works great(DHCP, and static IP).

Which is the problem? i think i have a problem on MISO, but i don't know which.
I've been thinking about using one optocoupler on all device's MISO acting as one rele, only letting communication when its CS is LOW.

Thank you in advance.

SD card on ethernet shield SS is D4, not D42.

Yes you're right,
sd card on ethernet uses pin D4, but i've wired D42 on mega to D4 on ethernet shield, and it works on explained situations.

Maybe it is the SD library. See reply #15 here.