diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod b/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
index cd0514d1df4063590b92c2cba928a7030c0e88ae..b4a40ad8aea8ece6fa12713fe32e1367e6ca08e6 100644
--- a/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
+++ b/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
@@ -3,14 +3,17 @@
 //! submodule HTTP
 //! method object(Protocols.HTTP.Query) get_url(string url)
 //! method object(Protocols.HTTP.Query) get_url(string url,mapping query_variables)
+//! method object(Protocols.HTTP.Query) get_url(string url,mapping query_variables, mapping request_headers)
 //! 	Sends a HTTP GET request to the server in the URL
 //!	and returns the created and initialized <ref>Query</ref> object.
 //!	0 is returned upon failure.
 //!
 //! method array(string) get_url_nice(string url)
 //! method array(string) get_url_nice(string url,mapping query_variables)
+//! method array(string) get_url_nice(string url,mapping query_variables, mapping request_headers)
 //! method string get_url_data(string url)
 //! method string get_url_data(string url,mapping query_variables)
+//! method string get_url_data(string url,mapping query_variables, mapping request_headers)
 //!	Returns an array of ({content_type,data}) and just the data
 //!	string respective, 
 //!	after calling the requested server for the information.
@@ -18,13 +21,16 @@
 //!
 //!
 //! method array(string) post_url_nice(string url,mapping query_variables)
+//! method array(string) post_url_nice(string url,mapping query_variables, mapping request_headers)
 //! method string post_url_data(string url,mapping query_variables)
+//! method string post_url_data(string url,mapping query_variables, mapping request_headers)
 //! method object(Protocols.HTTP.Query) post_url(string url,mapping query_variables)
+//! method object(Protocols.HTTP.Query) post_url(string url,mapping query_variables, mapping request_headers)
 //! 	Similar to the <ref>get_url</ref> class of functions, except that the 
 //!	query variables is sent as a post request instead of a get.
 //!
 
-object get_url(string url,void|mapping query_variables)
+object get_url(string url,void|mapping query_variables, void|mapping request_headers)
 {
    object con=master()->resolv("Protocols")["HTTP"]["Query"]();
    
@@ -53,25 +59,25 @@ object get_url(string url,void|mapping query_variables)
    con->sync_request(host,port,
 		     "GET /"+query+" HTTP/1.0",
 		     (["user-agent":
-		       "Mozilla/4.0 compatible (Pike HTTP client)"]));
+		       "Mozilla/4.0 compatible (Pike HTTP client)"]) | request_headers);
 
    if (!con->ok) return 0;
    return con;
 }
 
-array(string) get_url_nice(string url,void|mapping query_variables)
+array(string) get_url_nice(string url,void|mapping query_variables, void|mapping request_headers)
 {
-   object c=get_url(url,query_variables);
+   object c=get_url(url,query_variables, request_headers);
    return c && ({c->headers["content-type"],c->data()});
 }
 
-string get_url_data(string url,void|mapping query_variables)
+string get_url_data(string url,void|mapping query_variables, void|mapping request_headers)
 {
-   object z=get_url(url,query_variables);
+   object z=get_url(url,query_variables, request_headers);
    return z && z->data();
 }
 
-object post_url(string url,mapping query_variables)
+object post_url(string url,mapping query_variables, void|mapping request_headers)
 {
    object con=master()->resolv("Protocols")["HTTP"]["Query"]();
    
@@ -92,8 +98,9 @@ object post_url(string url,mapping query_variables)
    con->sync_request(host,port,
 		     "POST /"+query+" HTTP/1.0",
 		     (["user-agent":
-		       "Mozilla/4.0 compatible (Pike HTTP client)",
-		       "content-type":
+		       "Mozilla/4.0 compatible (Pike HTTP client)"]) |
+		     request_headers |
+		     (["content-type":
 		       "application/x-www-form-urlencoded"]),
 		     http_encode_query(query_variables));
 
@@ -101,15 +108,15 @@ object post_url(string url,mapping query_variables)
    return con;
 }
 
-array(string) post_url_nice(string url,mapping query_variables)
+array(string) post_url_nice(string url,mapping query_variables, void|mapping request_headers)
 {
-   object c=post_url(url,query_variables);
+   object c=post_url(url,query_variables, request_headers);
    return c && ({c->headers["content-type"],c->data()});
 }
 
-string post_url_data(string url,mapping query_variables)
+string post_url_data(string url,mapping query_variables, void|mapping request_headers)
 {
-   object z=post_url(url,query_variables);
+   object z=post_url(url,query_variables, request_headers);
    return z && z->data();
 }