Translations of this page

Fighting Software Patents - Singly and Together

By Richard Stallman

 [image of the Head of a GNU]

Software patents are the software project equivalent of land mines: each design decision carries a risk of stepping on a patent, which can destroy your project.

Developing a large and complex program means combining many ideas, often hundreds or thousands of them. In a country that allows software patents, chances are that some substantial fraction of the ideas in your program will be patented already by various companies. Perhaps hundreds of patents will cover parts of your program. A study in 2004 found almost 300 US patents that covered various parts of a single important program. It is so much work to do such a study that only one has been done.

Practically speaking, if you are a software developer, you will usually be threatened by one patent at a time. When this happens, you may be able to escape unscathed if you find legal grounds to overturn the patent. You may as well try it; if you succeed, that will mean one less mine in the mine field. If this patent is particularly threatening to the public, the Public Patent Foundation ( may take up the case; that is its specialty. If you ask for the computer-using community's help in searching for prior publication of the same idea, to use as evidence to overturn a patent, we should all respond with whatever useful information we might have.

However, fighting patents one by one will never eliminate the danger of software patents, any more than swatting mosquitos will eliminate malaria. You cannot expect to defeat every patent that comes at you, any more than you can expect to kill every monster in a video game: sooner or later, one is going to defeat you and damage your program. The US patent office issues around a hundred thousand software patents each year; our best efforts could never clear these mines as fast as they plant more.

Some of these mines are impossible to clear. Every software patent is harmful, and every software patent unjustly restricts how you use your computer, but not every software patent is legally invalid according to the patent system's criteria. The software patents we can overturn are those that result from "mistakes", where the patent system's rules were not properly carried out. There is nothing we can do when the only relevant mistake was the policy of allowing software patents.

To make a part of the castle safe, you've got to do more than kill the monsters as they appear--you have to wipe out the generator that produces them. Overturning existing patents one by one will not make programming safe. To do that, we have to change the patent system so that patents can no longer threaten software developers and users.

There is no conflict between these two campaigns: we can work on the short-term escape and the long-term fix at once. If we take care, we can make our efforts to overturn individual software patents do double duty, building support for efforts to correct the whole problem. The crucial point is not to equate "bad" software patents with mistaken or invalid software patents. Each time we invalidate one software patent, each time we talk about our plans to try, we should say in no uncertain terms, "One less software patent, one less menace to programmers: the target is zero."

The battle over software patents in the European Union is reaching a crucial stage. The European Parliament voted a year ago to reject software patents conclusively. In May, the Council of Ministers voted to undo the Parliament's amendments and make the directive even worse than when it started. However, at least one country that supported this has already reversed its vote. We must all do our utmost right now to convince an additional European country to change its vote, and to convince the newly elected members of the European Parliament to stand behind the previous vote. Please refer to for more information on how to help, and to get in touch with other activists.

Other Texts to Read

Translations of this page:
[ English | Español | Français | Italiano | Polski | Portugu√™s ]