diff -cr apache_1.3.3.orig/src/include/httpd.h apache_1.3.3/src/include/httpd.h
*** apache_1.3.3.orig/src/include/httpd.h	Wed Oct  7 18:19:06 1998
--- apache_1.3.3/src/include/httpd.h	Tue Nov 17 00:22:36 1998
***************
*** 532,538 ****
  				    ((x) == HTTP_NOT_IMPLEMENTED))
  
  
! #define METHODS 8
  #define M_GET 0
  #define M_PUT 1
  #define M_POST 2
--- 532,538 ----
  				    ((x) == HTTP_NOT_IMPLEMENTED))
  
  
! #define METHODS 9
  #define M_GET 0
  #define M_PUT 1
  #define M_POST 2
***************
*** 540,546 ****
  #define M_CONNECT 4
  #define M_OPTIONS 5
  #define M_TRACE 6
! #define M_INVALID 7
  
  #define CGI_MAGIC_TYPE "application/x-httpd-cgi"
  #define INCLUDES_MAGIC_TYPE "text/x-server-parsed-html"
--- 540,547 ----
  #define M_CONNECT 4
  #define M_OPTIONS 5
  #define M_TRACE 6
! #define M_MOVE 7
! #define M_INVALID 8
  
  #define CGI_MAGIC_TYPE "application/x-httpd-cgi"
  #define INCLUDES_MAGIC_TYPE "text/x-server-parsed-html"
diff -cr apache_1.3.3.orig/src/main/http_core.c apache_1.3.3/src/main/http_core.c
*** apache_1.3.3.orig/src/main/http_core.c	Thu Oct  1 13:52:28 1998
--- apache_1.3.3/src/main/http_core.c	Tue Nov 17 00:19:25 1998
***************
*** 1086,1091 ****
--- 1086,1094 ----
  	else if (!strcmp(method, "OPTIONS")) {
  	    limited |= (1 << M_OPTIONS);
  	}
+ 	else if (!strcmp(method, "MOVE")) {
+ 	    limited |= (1 << M_MOVE);
+ 	}
  	else {
  	    return ap_pstrcat(cmd->pool, "unknown method \"",
  			      method, "\" in <Limit>", NULL);
***************
*** 2741,2746 ****
--- 2744,2752 ----
          return ap_send_http_options(r);
      }
      if (r->method_number == M_PUT) {
+         return METHOD_NOT_ALLOWED;
+     }
+     if (r->method_number == M_MOVE) {
          return METHOD_NOT_ALLOWED;
      }
  
diff -cr apache_1.3.3.orig/src/main/http_protocol.c apache_1.3.3/src/main/http_protocol.c
*** apache_1.3.3.orig/src/main/http_protocol.c	Wed Oct  7 04:06:09 1998
--- apache_1.3.3/src/main/http_protocol.c	Tue Nov 17 00:55:17 1998
***************
*** 696,701 ****
--- 696,703 ----
          r->method_number = M_OPTIONS;
      else if (!strcmp(r->method, "TRACE"))
          r->method_number = M_TRACE;
+     else if (!strcmp(r->method, "MOVE"))
+         r->method_number = M_MOVE;
      else
          r->method_number = M_INVALID;   /* Will eventually croak. */
  
***************
*** 1242,1248 ****
                         (r->allowed & (1 << M_PUT)) ? ", PUT" : "",
                         (r->allowed & (1 << M_DELETE)) ? ", DELETE" : "",
                         (r->allowed & (1 << M_OPTIONS)) ? ", OPTIONS" : "",
!                        ", TRACE",
                         NULL);
  }
  
--- 1244,1251 ----
                         (r->allowed & (1 << M_PUT)) ? ", PUT" : "",
                         (r->allowed & (1 << M_DELETE)) ? ", DELETE" : "",
                         (r->allowed & (1 << M_OPTIONS)) ? ", OPTIONS" : "",
!                        (r->allowed & (1 << M_TRACE)) ? ", TRACE" : "",
!                        ", MOVE",
                         NULL);
  }
  
diff -cr apache_1.3.3.orig/src/modules/standard/mod_actions.c apache_1.3.3/src/modules/standard/mod_actions.c
*** apache_1.3.3.orig/src/modules/standard/mod_actions.c	Fri Aug  7 02:30:53 1998
--- apache_1.3.3/src/modules/standard/mod_actions.c	Tue Nov 17 00:40:15 1998
***************
*** 86,91 ****
--- 86,92 ----
      char *post;			/* Added with Script POST */
      char *put;			/* Added with Script PUT */
      char *delete;		/* Added with Script DELETE */
+     char *move;			/* Added with Script MOVE */
  } action_dir_config;
  
  module action_module;
***************
*** 100,105 ****
--- 101,107 ----
      new->post = NULL;
      new->put = NULL;
      new->delete = NULL;
+     new->move = NULL;
  
      return new;
  }
***************
*** 118,123 ****
--- 120,126 ----
      new->post = add->post ? add->post : base->post;
      new->put = add->put ? add->put : base->put;
      new->delete = add->delete ? add->delete : base->delete;
+     new->move = add->move ? add->move : base->move;
  
      return new;
  }
***************
*** 140,145 ****
--- 143,150 ----
  	m->put = script;
      else if (!strcmp(method, "DELETE"))
  	m->delete = script;
+     else if (!strcmp(method, "MOVE"))
+ 	m->move = script;
      else
  	return "Unknown method type for Script";
  
***************
*** 171,176 ****
--- 176,183 ----
  	r->allowed |= (1 << M_PUT);
      if (conf->delete)
  	r->allowed |= (1 << M_DELETE);
+     if (conf->move)
+ 	r->allowed |= (1 << M_MOVE);
  
      /* First, check for the method-handling scripts */
      if ((r->method_number == M_GET) && r->args && conf->get)
***************
*** 181,186 ****
--- 188,195 ----
  	script = conf->put;
      else if ((r->method_number == M_DELETE) && conf->delete)
  	script = conf->delete;
+     else if ((r->method_number == M_MOVE) && conf->move)
+ 	script = conf->move;
  
      /* Check for looping, which can happen if the CGI script isn't */
      if (script && r->prev && r->prev->prev)
