diff --git a/salt/netapi/rest_cherrypy/app.py b/salt/netapi/rest_cherrypy/app.py
index <HASH>..<HASH> 100644
--- a/salt/netapi/rest_cherrypy/app.py
+++ b/salt/netapi/rest_cherrypy/app.py
@@ -508,8 +508,10 @@ def lowdata_fmt():
 
     data = cherrypy.request.unserialized_data
 
-    if (cherrypy.request.headers['Content-Type']
-            == 'application/x-www-form-urlencoded'):
+    # if the data was sent as urlencoded, we need to make it a list.
+    # this is a very forgiving implementation as different clients set different
+    # headers for form encoded data (including charset or something similar)
+    if not isinstance(data, list):
         # Make the 'arg' param a list if not already
         if 'arg' in data and not isinstance(data['arg'], list):
             data['arg'] = [data['arg']]
Fix regression in url encoded salt-api messages

Most clients that do url encoding include other data in the Content-Type field (requests for example sets "application/x-www-form-urlencoded; charset=utf-8"). This changes the api to be a more forgiving server which will make any non-list struct a list