> Which is why I claim in the documentation and the source that > such-and-such a routine is covered by a different license. I'll put the disclaimer first instead of at the end. In discussing the terms of the GPL, I am NOT endorsing it. :-) The GPL first says "changing [the GPL] is not allowed" Then the second paragraph: This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. Allows you to use the GPL on your programs. Does not (yet) force you to do anything. The first paragraph of page two says that when the GPL says a "work based on the Program" it means ... either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. After it says what you MUST do if you copy and distribute a GPL program, it says (2b) concerning a "work based on the pProgram": b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. And the next page starts with: These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Meaning, apparently, if you compile and link GPL code into a "whole" program, the "whole" program must be GPL. This would violate the BSD license. Your only "legal" out is to "copy and distribute" the GPL part and the BSD part "as separate works" and let the recipient put them together. Anyone who compiles and links them into a "whole" must either not distribute or distribute as a GPL'd whole. There is one other out: Get the owner of the GPL'd part to change the terms. Which requires the owners of all the GPL'd components to change the terms, which .... Read over the rest of the GPL, and it becomes pretty plain that it's designed, not just to keep certain pieces of code free, but to "liberate" as much other code as much as possible. Enforcement, of course, is difficult, but to comply with the letter of the GPL, you have to be very careful how you "package" a "work based on the Program." And even then, you're not complying with the "spirit" of the GPL. When I distribute code, I usually try to include wording that prevents anyone from hoarding it. But I do not think it appropriate for me to attempt to coerce someone else to work/play according to my programming philosophy. I avoid GPL code, because it not only tries to control me, but everyone who benefits by my actions.