diff --git a/demo/microcom.py b/demo/microcom.py
new file mode 100644
index 0000000000000000000000000000000000000000..7762ea4f8315cde25faad933975f3924a0e36d2d
--- /dev/null
+++ b/demo/microcom.py
@@ -0,0 +1,22 @@
+# 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-].
+
+import pcl_expect.pyserial
+import pcl_expect.user
+import pcl_expect
+
+port = pcl_expect.pyserial.Serial(0, baudrate=9600)
+user = pcl_expect.user.User(pcl_expect.user.RAW)
+
+x = pcl_expect.Controller()
+while x.loop():
+    if x.re(user, "^\035"):
+        break
+    elif x.re(user, "(?s)."):
+        port.send(user.consumed)
+    elif x.re(port, "..*"):
+        user.send(port.consumed)
+    elif x.timeout():
+        pass
+
+port.close()