diff --git a/CHANGES b/CHANGES
index ce0abeba04257168f39d62d71a0e993fce71a8d0..21f345bd2eb76631573cb39244722df8e5edcde9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,13 @@
 
                                   Changelog
 
+Daniel Fandrich (27 Aug 2008)
+- Fixed test case 1065 by changing the handling of CURLOPT_UPLOAD to set
+  the HTTP method to GET (or HEAD) when given a value of 0.
+
+- Added test cases 1068 and 1069 to test a simple HTTP PUT from stdin.  Test
+  case 1069 fails in a similar manner to test 1065 so is added to DISABLED.
+
 Yang Tse (27 Aug 2008)
 - Fix generation of MS VC6 .dsp file to make it support compilation of either
   dynamic (DLL) or static (LIB) libcurl libraries in debug and release modes.
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index d082085c31ab2c5dfba2d8dd9cbc7068ebf5013e..cfdb11979b858f62748ff579abc56250f342acc9 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -58,6 +58,7 @@ This release includes the following bugfixes:
  o improved curl_m*printf() integral data type size and signedness handling
  o error when --dump-header - used with more than one URL
  o proxy closing connect during CONNECT with auth with the multi interface
+ o CURLOPT_UPLOAD sets HTTP method back to GET or HEAD when passed in a 0
 
 This release includes the following known bugs:
 
diff --git a/lib/url.c b/lib/url.c
index 41222f0ecd60d912b0ce5016cdad9b1538997657..a70b471b25965d0667bf3bbeefc921c83a298a78 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -888,6 +888,9 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
     if(data->set.upload)
       /* If this is HTTP, PUT is what's needed to "upload" */
       data->set.httpreq = HTTPREQ_PUT;
+    else
+      /* In HTTP, the opposite of upload is either GET or a HEAD */
+      data->set.httpreq = data->set.opt_no_body?HTTPREQ_HEAD:HTTPREQ_GET;
     break;
   case CURLOPT_FILETIME:
     /*
diff --git a/tests/data/DISABLED b/tests/data/DISABLED
index 9e61456de631846ebd83ba8a52231040669cf05b..87d335550b0039f53f1bbb80fd074b980bff703d 100644
--- a/tests/data/DISABLED
+++ b/tests/data/DISABLED
@@ -3,5 +3,4 @@
 # test cases are run by runtests.pl. Just add the plain test case numbers, one
 # per line.
 # Lines starting with '#' letters are treated as comments.
-1065
 1069
diff --git a/tests/data/test1065 b/tests/data/test1065
index 700d8110be5cd3812707b0843c4a79fb74572274..87f4654ca39cec58eefdb36e7128aadae8c754ec 100644
--- a/tests/data/test1065
+++ b/tests/data/test1065
@@ -3,6 +3,7 @@
 <keywords>
 HTTP
 HTTP PUT
+HTTP GET
 </keywords>
 </info>
 
@@ -35,7 +36,7 @@ http
 HTTP PUT with one file but two URLs
  </name>
  <command>
--H "Expect:" -T log/1065 http://%HOSTIP:%HTTPPORT/1065.upload1 http://%HOSTIP:%HTTPPORT/10650002.upload2
+-H "Expect:" -T log/1065 http://%HOSTIP:%HTTPPORT/1065.upload1 http://%HOSTIP:%HTTPPORT/10650002.url2
 </command>
 <file name="log/1065">
 test
@@ -54,10 +55,9 @@ Accept: */*
 Content-Length: 5
 
 test
-PUT /10650002.upload2 HTTP/1.1
+GET /10650002.url2 HTTP/1.1
 Host: %HOSTIP:%HTTPPORT
 Accept: */*
-Content-Length: 0
 
 </protocol>
 <stdout>