diff --git a/wsclient.inc b/wsclient.inc
index fd18ba0..d72342a 100644
--- a/wsclient.inc
+++ b/wsclient.inc
@@ -72,6 +72,16 @@ class WSClientServiceDescription extends Entity {
         $named_arguments[$param] = array_shift($arguments);
       }
     }
+    
+    // global parameters
+    if (isset($this->settings['global parameters'])) {
+      foreach ($this->settings['global parameters'] as $param => $info) {
+        if (empty($named_arguments[$param])) {
+          $named_arguments[$param] = $info['default value'];
+        }
+      }
+    }
+    
     return $this->endpoint()->call($operation, $named_arguments);
   }
 
diff --git a/wsclient_ui/wsclient_ui.inc b/wsclient_ui/wsclient_ui.inc
index ef1d038..064d8ea 100644
--- a/wsclient_ui/wsclient_ui.inc
+++ b/wsclient_ui/wsclient_ui.inc
@@ -59,6 +59,25 @@ function wsclient_service_form($form, &$form_state, $service, $op = 'edit') {
     '#description' => t('The type of the web service.'),
   );
   if ($op == 'edit') {
+    // global variables table
+    if (isset($service->settings['global parameters'])) {
+      $form['global_parameters'] = array(
+        '#tree' => TRUE,
+        '#element_validate' => array('wsclient_ui_validate_parameters'),
+        '#theme' => 'wsclient_ui_parameter_form',
+        '#title' => t('Global Parameters'),
+        '#description' => t('Specify the global parameters for the services. Global parameters will override the value of operation paramter if parameter value is empty.'),
+      );
+
+      $weight = 0;
+      $datatypes = wsclient_ui_types(TRUE);
+
+      foreach ($service->settings['global parameters'] as $name => $info) {
+        $form['global_parameters']['items'][$name] = _wsclient_ui_parameter_row($service, $datatypes, $name, $info);
+        $form['global_parameters']['items'][$name]['weight']['#default_value'] = $weight++;
+      }
+    }
+
     // Operations of the web service in a table
     $rows = array();
     $operations = wsclient_ui_label_sort($service->operations);
@@ -164,6 +183,14 @@ function wsclient_service_form($form, &$form_state, $service, $op = 'edit') {
  */
 function wsclient_service_form_submit($form, &$form_state) {
   $service = entity_ui_form_submit_build_entity($form, $form_state);
+
+  // global parameters
+  if (isset($form_state['values']['global_parameters'])) {
+    foreach ($form_state['values']['global_parameters']['items'] as $param => $value) {
+      $service->settings['global parameters'][$param]['default value'] = $value['default_value'];
+    }
+  }
+
   $service->save();
   drupal_set_message(t('Web service description %service has been saved.', array('%service' => $service->label)));
   if ($form_state['op'] == 'add') {
