diff --git a/examples/websocket_chat/Makefile b/examples/websocket_chat/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..5b027268ccea71203b38f015945ead389eebdb40
--- /dev/null
+++ b/examples/websocket_chat/Makefile
@@ -0,0 +1,12 @@
+# Copyright (c) 2014 Cesanta Software
+# All rights reserved
+
+PROG = websocket_chat
+CFLAGS = -W -Wall -I../.. -g -O0 $(CFLAGS_EXTRA)
+SOURCES = $(PROG).c ../../mongoose.c
+
+$(PROG): $(SOURCES)
+	$(CC) -o $(PROG) $(SOURCES) $(CFLAGS)
+
+clean:
+	rm -rf $(PROG) *.exe *.dSYM *.obj *.exp .*o *.lib
diff --git a/examples/pubsub.html b/examples/websocket_chat/index.html
similarity index 99%
rename from examples/pubsub.html
rename to examples/websocket_chat/index.html
index f73d8f689bf3b87b6aee5eba5e23f3b9c10f3916..5da84d30775760e79f4e6194bff91e1fffbecc91 100644
--- a/examples/pubsub.html
+++ b/examples/websocket_chat/index.html
@@ -48,7 +48,7 @@
       document.getElementById('messages').appendChild(div);
     }
   };
-  
+
   window.onload = function() {
     document.getElementById('send_button').onclick = function(ev) {
       var msg = document.getElementById('send_input').value;
@@ -74,7 +74,7 @@
       connection with Mongoose, making each browser window a websocket client.
       Join a room, send messages, and see messages sent by other clients.
     </p>
-    
+
     <p>
       My ID: <b><span id="my_id"></b></span>
     </p>
@@ -88,7 +88,7 @@
 
     <div id="messages">
     </div>
-    
+
     <p>
       <input type="text" id="send_input" />
       <button id="send_button">Send Message</button>
diff --git a/examples/websocket2.c b/examples/websocket_chat/websocket_chat.c
similarity index 96%
rename from examples/websocket2.c
rename to examples/websocket_chat/websocket_chat.c
index dbe880069e8b0ca4dc187032cd48cc935bf54b4e..8eb3fc3f5497a0b52c9b7c5dfcc6be820df3bd58 100644
--- a/examples/websocket2.c
+++ b/examples/websocket_chat/websocket_chat.c
@@ -46,7 +46,7 @@ static int ev_handler(struct mg_connection *conn, enum mg_event ev) {
         handle_websocket_message(conn);
         return MG_TRUE;
       } else {
-        mg_send_file(conn, "pubsub.html");  // Return MG_MORE after mg_send_file()
+        mg_send_file(conn, "index.html");  // Return MG_MORE after mg_send_file()
         return MG_MORE;
       }
     case MG_WS_CONNECT:
@@ -67,10 +67,10 @@ static int ev_handler(struct mg_connection *conn, enum mg_event ev) {
 int main(void) {
   s_server = mg_create_server(NULL, ev_handler);
   mg_set_option(s_server, "listening_port", "8080");
-  
+
   signal(SIGTERM, signal_handler);
   signal(SIGINT, signal_handler);
-  
+
   printf("Started on port %s\n", mg_get_option(s_server, "listening_port"));
   while (s_signal_received == 0) {
     mg_poll_server(s_server, 100);