Index: includes/announce_core.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/bittorrent/includes/announce_core.php,v
retrieving revision 1.7.2.2
diff -u -r1.7.2.2 announce_core.php
--- includes/announce_core.php	27 Jun 2009 16:46:59 -0000	1.7.2.2
+++ includes/announce_core.php	2 Jul 2009 21:43:34 -0000
@@ -64,17 +64,21 @@
   $_optional_keys[] = 'passkey';
 }
 
+//$params = $_GET;
+// Temporary workaround for http://drupal.org/node/508606 (this is the problem of some clients)
+parse_str(str_replace('?', '&', $_SERVER['QUERY_STRING']), $params);
+
 // Check for missing keys in the querystring
 foreach( $_required_keys as $key )
-  if( !array_key_exists($key, $_GET) )
+  if( !array_key_exists($key, $params) )
     bt_error('Missing Key: '. $key);
   else
-    $request[$key] = strip_magic($_GET[$key]);
+    $request[$key] = strip_magic($params[$key]);
 
 // Check for optional keys in the querystring
 foreach( $_optional_keys as $key )
-  if( array_key_exists($key, $_GET) )
-    $request[$key] = strip_magic($_GET[$key]);
+  if( array_key_exists($key, $params) )
+    $request[$key] = strip_magic($params[$key]);
 
 // For $request structure see http://wiki.theory.org/BitTorrentSpecification#Tracker_Request_Parameters
 
@@ -329,7 +333,7 @@
 $file = field_file_load($fid);
 $torrent_data = bdecode_file($file['filepath']);
 $announce_tier_list = torrent_get_announce_tier_list($torrent_data);
-$remote_request = $_GET;
+$remote_request = $params;
 unset($remote_request['passkey']);
 $remote_request_query = http_build_query($remote_request, '', '&');
 $remote_tracker_response_list = array();
