diff --git a/mwclient/client.py b/mwclient/client.py
index dc08069cae31320e583e8c724d62adbc1af3f713..791783b76722e7454dd2d2ebf7d716ad44097fe7 100644
--- a/mwclient/client.py
+++ b/mwclient/client.py
@@ -156,7 +156,11 @@ class Site(object):
 	@staticmethod
 	def _query_string(*args, **kwargs):
 		kwargs.update(args)
-		return urllib.urlencode([(k, Site._to_str(v)) for k, v in kwargs.iteritems()])
+		qs = urllib.urlencode([(k, Site._to_str(v)) for k, v in kwargs.iteritems()
+			if k != 'wpEditToken'])
+		if 'wpEditToken' in kwargs: 
+			qs += '&wpEditToken=' + urllib.quote(Site._to_str(kwargs['wpEditToken']))
+		return qs
 		
 	def raw_call(self, script, data):
 		url = self.path + script + '.php'