diff --git a/demo/df.py b/demo/df.py
index f80355498a854799dd14f5bde2faf2e82e4d1ff8..f95e1c2695bfee34474d95c7752201d632560cd2 100644
--- a/demo/df.py
+++ b/demo/df.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Simple df parsing demo.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 from pcl_expect import Controller
 from pcl_expect.popen import Popen
 
diff --git a/demo/dualftp.py b/demo/dualftp.py
index 059684f6856a53bf9ecabf117012ad7d695d6447..be1cf0cedc81f7cb309ba7c6d950f82b12a58bf3 100644
--- a/demo/dualftp.py
+++ b/demo/dualftp.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Demo that benchmarks two ftp servers.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 # A more complex ftp example.  This one connects to two ftp servers,
 # does a "cd pub" on both, and prints a directory listing.  This is
 # done in parallell, so the output from the fastest server will be
diff --git a/demo/ftp.py b/demo/ftp.py
index 6fddca2a64b9f789cff2f3e86a1297eb1f7af53b..e26286b30d81b8047e4b44818dd8a0d25b5003f0 100644
--- a/demo/ftp.py
+++ b/demo/ftp.py
@@ -1,4 +1,19 @@
-# The mandatory ftp example...
+# pcl-expect: expect for Python.  The mandatory ftp example...
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 import pcl_expect.spawn
 import pcl_expect
diff --git a/demo/ftp_interact.py b/demo/ftp_interact.py
index bee8780845280be2fdbd43938bbbb226345fa709..8869b141dd2d12fd004500b762787615006f9edc 100644
--- a/demo/ftp_interact.py
+++ b/demo/ftp_interact.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Demo interactive ftp program.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 # An interactive ftp example.
 # This will connect to ftp.funet.fi.  The command "home" will cd
 # to one of the most useful areas: /pub/gnu/ftp.gnu.org/pub/gnu
diff --git a/demo/ftptrad.py b/demo/ftptrad.py
index a718b4b87854e8e566ce50259d4449be6af9fff5..a8fed7d1d54d99954197f2bbf6abd6d97e902a1a 100644
--- a/demo/ftptrad.py
+++ b/demo/ftptrad.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Demo ftp program of the expect function.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 # The mandatory ftp example, in traditional style.
 
 import pcl_expect
diff --git a/demo/komtime.py b/demo/komtime.py
index 72df613bbf0508edbc5a7ee9b3b7e260afa04f15..f4949e5c7123263ab8a64691e6fa97efee4e6ace 100644
--- a/demo/komtime.py
+++ b/demo/komtime.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  LysKOM Protocol A get-time demo.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 # Connect to the LysKOM server at kom.lysator.liu.se, query it for the
 # current time, and print the result in ISO 8601 format.
 
diff --git a/demo/microcom.py b/demo/microcom.py
index 11aea6da35066752f40026ef5fb81246f2704325..623f5e8b2c19e0d27e9aa69bc18a5890d4e40585 100644
--- a/demo/microcom.py
+++ b/demo/microcom.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Minimal terminal emulator.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 # This example opens the first serial port in 9600 bits per second and
 # connects the keyboard to it.  It terminates when the user presses Ctrl-].
 
diff --git a/demo/read-serial.py b/demo/read-serial.py
index 96110d24ce60cfb85f0b8635e2c4b91c1e905beb..bc24d48df822b24c375f40a2678e62ffc17a5b37 100644
--- a/demo/read-serial.py
+++ b/demo/read-serial.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Demo serial code.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 # This example opens the first serial port in 4800 bits per second and
 # reads input from it.  It terminates after 10 consecutive seconds
 # with no input.
diff --git a/demo/stderr.py b/demo/stderr.py
index 7241e110ecc31e93e9a34dbfe3981d2d973c7c89..07c6e609f0d1cccd3f1564c6d24b35e32f1d0ce9 100644
--- a/demo/stderr.py
+++ b/demo/stderr.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  spawn2() demo program.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 import os
 
 import pcl_expect.spawn
diff --git a/demo/stdout.py b/demo/stdout.py
index 7d48d6137f194ec5549b336f9ad722dc3ad2d5f6..3a31f4873b49039aa281dccff57dc7027c2cc89d 100644
--- a/demo/stdout.py
+++ b/demo/stdout.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Spawn demo program.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 import os
 
 import pcl_expect.spawn
diff --git a/demo/telnet.py b/demo/telnet.py
index d58d409355831dbaf0b61821154577c0cb9d8c8f..f83c7bbb8acbdb67e02277af0d0f8c2795dd623b 100644
--- a/demo/telnet.py
+++ b/demo/telnet.py
@@ -1,6 +1,23 @@
-# Simple telnet demo.  Expects a host and user name on the command line,
-# reads a password from stdin, logs in on that host, runs "uname -a",
-# and prints the result.
+# pcl-expect: expect for Python.  Simple telnet demo.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+# Expects a host and user name on the command line, reads a password
+# from stdin, logs in on that host, runs "uname -a", and prints the
+# result.
 
 import os
 import sys
diff --git a/pcl_expect/__init__.py b/pcl_expect/__init__.py
index 4e42165716f57197ebb0338b35eb889401d2f4fa..30459a4ab3190388be6a125ecce0238c5a23ddfe 100644
--- a/pcl_expect/__init__.py
+++ b/pcl_expect/__init__.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Main module and base clases.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 """An extensible expect module with more expect-like feeling.
 
 FIXME: more doc needed.
diff --git a/pcl_expect/popen.py b/pcl_expect/popen.py
index 1e9a1c5db572b341ca10746da676232121a58502..72f9ebf86843e2700ed4cd6a74d4ebd8976551e1 100644
--- a/pcl_expect/popen.py
+++ b/pcl_expect/popen.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Interface to os.popen.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 """Start a process using os.popen, and read input from it.
 """
 
diff --git a/pcl_expect/pyserial.py b/pcl_expect/pyserial.py
index fea60a86b8c6d3d0d9f90ab1d19ccdcdc085ae56..26be3804c19a6bd6b3d4b4dde7a511b44dc8f514 100644
--- a/pcl_expect/pyserial.py
+++ b/pcl_expect/pyserial.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Serial port interface.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 """Read input from a serial port using the pySerial module.
 
    pySerial is available from http://pyserial.sourceforge.net/
diff --git a/pcl_expect/remote_exception.py b/pcl_expect/remote_exception.py
index 1282fa597a00ac5f1a371bb77e7f3869ca31db10..44a82d989c6520409d9479446ad49e36047bcec5 100644
--- a/pcl_expect/remote_exception.py
+++ b/pcl_expect/remote_exception.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Remote exception handling.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 """Exception handling for remote processes.
 
    If you have a controller process that spawns a child process, and
diff --git a/pcl_expect/spawn.py b/pcl_expect/spawn.py
index 0694402b2e2dd91d27d350eb1d1105b48781065c..6fb2701553943e0c75dcabd8311cf66a477d4c41 100644
--- a/pcl_expect/spawn.py
+++ b/pcl_expect/spawn.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Pty interface.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 """Spawn subprocesses via a pty.
 
    The normal way to use this is by creating an instance of the Spawn
diff --git a/pcl_expect/tcp.py b/pcl_expect/tcp.py
index 23d824c11e4388f5845e3c8568eaeb52ec3da72e..b128f24b0565f06b056d5a04771eadcbff8eee4c 100644
--- a/pcl_expect/tcp.py
+++ b/pcl_expect/tcp.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  TCP interface.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 """Connect to a TCP socket.
 
    This module provides the TcpClient class.  It inherits Expectable
diff --git a/pcl_expect/telnet.py b/pcl_expect/telnet.py
index 0c128d42089b7b7ccfe98b4f99e3143b4c8b8443..b75747dc085488f2bf2450639fdf3835cca78559 100644
--- a/pcl_expect/telnet.py
+++ b/pcl_expect/telnet.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  Telnet interface.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 """Connect to a telnet server via the telnetlib.Telnet class.
 """
 
diff --git a/pcl_expect/user.py b/pcl_expect/user.py
index 10db92ca0c3bc6322767e3290d047974c20aea95..81fcb5f4b8ea6c9480d47d3cd214f9c11ae3bd63 100644
--- a/pcl_expect/user.py
+++ b/pcl_expect/user.py
@@ -1,3 +1,20 @@
+# pcl-expect: expect for Python.  User interface.
+# Copyright (C) 2003  Per Cederqvist <ceder@lysator.liu.se>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 import atexit
 import sys
 import tty