diff -ur tinyhttpd-0.1.0/httpd.c tinyhttpd-0.1.0-patched/httpd.c
--- tinyhttpd-0.1.0/httpd.c	2001-04-21 19:13:13.000000000 -0500
+++ tinyhttpd-0.1.0-patched/httpd.c	2007-07-02 09:19:27.000000000 -0500
@@ -4,14 +4,6 @@
  * CSE 4344 (Network concepts), Prof. Zeigler
  * University of Texas at Arlington
  */
-/* This program compiles for Sparc Solaris 2.6.
- * To compile for Linux:
- *  1) Comment out the #include <pthread.h> line.
- *  2) Comment out the line that defines the variable newthread.
- *  3) Comment out the two lines that run pthread_create().
- *  4) Uncomment the line that runs accept_request().
- *  5) Remove -lsocket from the Makefile.
- */
 #include <stdio.h>
 #include <sys/socket.h>
 #include <sys/types.h>
@@ -22,7 +14,6 @@
 #include <strings.h>
 #include <string.h>
 #include <sys/stat.h>
-#include <pthread.h>
 #include <sys/wait.h>
 #include <stdlib.h>
 
@@ -30,7 +21,6 @@
 
 #define SERVER_STRING "Server: jdbhttpd/0.1.0\r\n"
 
-void accept_request(int);
 void bad_request(int);
 void cat(int, FILE *);
 void cannot_execute(int);
@@ -102,7 +92,7 @@
   }
  }
 
- sprintf(path, "htdocs%s", url);
+ sprintf(path, "/var/www%s", url);
  if (path[strlen(path) - 1] == '/')
   strcat(path, "index.html");
  if (stat(path, &st) == -1) {
@@ -475,11 +465,10 @@
 int main(void)
 {
  int server_sock = -1;
- u_short port = 0;
+ u_short port = 80;
  int client_sock = -1;
  struct sockaddr_in client_name;
  int client_name_len = sizeof(client_name);
- pthread_t newthread;
 
  server_sock = startup(&port);
  printf("httpd running on port %d\n", port);
@@ -491,9 +480,7 @@
                        &client_name_len);
   if (client_sock == -1)
    error_die("accept");
- /* accept_request(client_sock); */
- if (pthread_create(&newthread , NULL, accept_request, client_sock) != 0)
-   perror("pthread_create");
+  accept_request(client_sock);
  }
 
  close(server_sock);
diff -ur tinyhttpd-0.1.0/Makefile tinyhttpd-0.1.0-patched/Makefile
--- tinyhttpd-0.1.0/Makefile	2001-04-21 17:03:39.000000000 -0500
+++ tinyhttpd-0.1.0-patched/Makefile	2007-07-02 10:29:41.000000000 -0500
@@ -1,7 +1,7 @@
 all: httpd
 
 httpd: httpd.c
-	gcc -W -Wall -lsocket -lpthread -o httpd httpd.c
+	$(CC) $(CFLAGS) $(LDFLAGS) -W -Wall -lpthread -o httpd httpd.c
 
 clean:
-	rm httpd
+	rm -f httpd
