diff --git a/client/djrandom_client/upload.py b/client/djrandom_client/upload.py
index 806272a118ed5b919df6ef20b563bba26efb858f..06c6a91e39470f09d5ea24c4faa248b95e25b764 100644
--- a/client/djrandom_client/upload.py
+++ b/client/djrandom_client/upload.py
@@ -56,7 +56,7 @@ class Uploader(object):
                     headers={'X-Key': self.api_key,
                              'Content-Type': 'audio/mpeg',
                              'Content-Length': str(filesize)})
-                req.get_method = lambda: 'PUT'
+                req.get_method = lambda: 'POST'
                 result = json.loads(urllib2.urlopen(req).read())
                 return result['status']
             finally:
diff --git a/server/djrandom/receiver/receiver.py b/server/djrandom/receiver/receiver.py
index 376cabfbeccba42067272b072978d2aaf65a5320..e5b55ef4f16a7d3471ee26f16926290d7753ece9 100644
--- a/server/djrandom/receiver/receiver.py
+++ b/server/djrandom/receiver/receiver.py
@@ -44,7 +44,7 @@ def _upload_mp3(incoming_fd, sha1):
     log.info('successfully stored %s' % (sha1,))
 
 
-@app.route('/upload/<sha1>', methods=['PUT'])
+@app.route('/upload/<sha1>', methods=['POST'])
 def upload(sha1):
     if request.content_type != 'audio/mpeg':
         log.error('attempted upload with wrong content-type (%s)' % (
@@ -58,7 +58,10 @@ def run_receiver(port, storage_dir, db_url):
     global storage_root
     storage_root = storage_dir
     init_db(db_url)
-    app.run(host='0.0.0.0', port=port, use_reloader=False)
+
+    from gevent.wsgi import WSGIServer
+    http_server = WSGIServer(('0.0.0.0', port), app)
+    http_server.serve_forever()
 
 
 def main():