diff --git a/examples/send_file/Makefile b/examples/send_file/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..3793867e56c94bb793223e91309b06be8259ee07
--- /dev/null
+++ b/examples/send_file/Makefile
@@ -0,0 +1,19 @@
+# Copyright (c) 2014 Cesanta Software
+# All rights reserved
+
+PROG = send_file
+CFLAGS = -W -Wall -I../.. $(CFLAGS_EXTRA)
+SOURCES = $(PROG).c ../../mongoose.c
+
+all: $(PROG)
+	./$(PROG)
+
+$(PROG): $(SOURCES) Makefile
+	$(CC) -o $(PROG) $(SOURCES) $(CFLAGS)
+
+win:
+	wine cl $(SOURCES) /MD /nologo /DNDEBUG /O1 /I../.. /Fe$(PROG).exe
+	wine $(PROG).exe
+
+clean:
+	rm -rf $(PROG) *.exe *.dSYM *.obj *.exp .*o *.lib *.gc*
diff --git a/examples/file.c b/examples/send_file/send_file.c
similarity index 72%
rename from examples/file.c
rename to examples/send_file/send_file.c
index 025060eb8580fc23c20c780c6068fc03f26aae03..ddb9350a42def0b450b17276eb469a4c08604ced 100644
--- a/examples/file.c
+++ b/examples/send_file/send_file.c
@@ -1,9 +1,14 @@
+// Copyright (c) 2014 Cesanta Software
+// All rights reserved
+//
+// This example demostrates how to send arbitrary files to the client.
+
 #include "mongoose.h"
 
 static int ev_handler(struct mg_connection *conn, enum mg_event ev) {
   switch (ev) {
     case MG_REQUEST:
-      mg_send_file(conn, "file.c");
+      mg_send_file(conn, "send_file.c");  // Also could be a directory, or CGI file
       return MG_MORE; // It is important to return MG_MORE after mg_send_file!
     case MG_AUTH: return MG_TRUE;
     default: return MG_FALSE;
@@ -19,4 +24,4 @@ int main(void) {
   mg_destroy_server(&server);
 
   return 0;
-}
\ No newline at end of file
+}