diff --git a/examples/repl-server.scm b/examples/repl-server.scm
new file mode 100644
index 00000000..eaa9ab44
--- /dev/null
+++ b/examples/repl-server.scm
@@ -0,0 +1,26 @@
+#!/usr/bin/env chibi-scheme
+
+(import (scheme base) (scheme read) (scheme write) (scheme eval)
+        (chibi net) (chibi net server))
+
+(define (repl-handler in out sock addr)
+  (let ((env (environment '(scheme base)
+                          '(only (chibi) import))))
+    (let lp ()
+      (let ((expr (read in)))
+        (cond
+         ((not (eof-object? expr))
+          (let ((result (guard (exn (else
+                                     (display "ERROR: " out)
+                                     (write exn out)
+                                     (newline out)
+                                     (if #f #f)))
+                          (eval expr env))))
+            (cond
+             ((not (eq? result (if #f #f)))
+              (write result out)
+              (newline out)))
+            (flush-output-port out)
+            (lp))))))))
+
+(run-net-server 5556 repl-handler)