Selectively breaking-apart a poly model

I have received a polygonal model with multiple shaders, but all as ONE MESH. I can select the polys assigned to the individual shaders easily enough via Hypershade etc, but what I WANT to do is break those polys out into their own mesh, without losing texture coordinates and so forth.

Applying "polySeparate" busts the model into about 50 bits, which isn't what I want.

What I want to do is something like this:

  1. select shader in hypershade (or wherever)
  2. "Select objects with this material" which selects those specific polys.
  3. Separate JUST THOSE POLYS into a new separate mesh node.

Am I missing something? Because I sure haven't found a straightforward way to accomplish this. Some specific use of "polyShipOff" that I'm too dense to figure out?

Thanks in advance,
KB

DUPEXtract.mel did what I needed, though I had to edit it for use in Maya 5 and Windows (multi-line string declarations were broken into their own procs).

Hi.
safeSeparate and detachSeparate also can do that.
Or. I can't remember the name of the script. But I saw something called separateByMaterial probably in this site.