diff --git a/vendor/studip_ws/dispatcher.php b/vendor/studip_ws/dispatcher.php
index d472a5905b9b0099c0b41af7612b872d471b3bda..e7a3caa06553a729f22b75064ec2eacf75b792a8 100644
--- a/vendor/studip_ws/dispatcher.php
+++ b/vendor/studip_ws/dispatcher.php
@@ -125,6 +125,7 @@ class Studip_Ws_Dispatcher {
       return $this->throw_exception('No service responds to "%s".', $method0);
 
     $service = $this->api_methods[$method0]->service;
+    $argument_array = array_values($argument_array);
 
     # calling before filter
     $before = $service->before_filter($method0, $argument_array);
diff --git a/vendor/studip_ws/type.php b/vendor/studip_ws/type.php
index 0085e4f2316da79e29b6325f362028d2a996db87..7fe226408da19449ef20fa3d4fa3d59cdee653f7 100644
--- a/vendor/studip_ws/type.php
+++ b/vendor/studip_ws/type.php
@@ -142,7 +142,7 @@ class Studip_Ws_Type {
    *
    * @todo name ist falsch
    */
-  function get_element_type($type) {
+  public static function get_element_type($type) {
     if (is_array($type))
       return current($type);
     trigger_error(sprintf('\$type has to be an array, but is: "%s"',
@@ -159,7 +159,7 @@ class Studip_Ws_Type {
    *
    * @return type <description>
    */
-  function is_complex_type($type0) {
+  public static function is_complex_type($type0) {
     $type = Studip_Ws_Type::get_type($type0);
     return $type === STUDIP_WS_TYPE_ARRAY || $type === STUDIP_WS_TYPE_STRUCT;
   }
@@ -172,7 +172,7 @@ class Studip_Ws_Type {
    *
    * @return type <description>
    */
-  function is_primitive_type($type) {
+  public static function is_primitive_type($type) {
     return !Studip_Ws_Type::is_complex_type($type);
   }
 
@@ -184,7 +184,7 @@ class Studip_Ws_Type {
    *
    * @return type <description>
    */
-  function get_struct_elements($struct) {
+  public static function get_struct_elements($struct) {
 
     # check argument; has to be a class
     if (!class_exists($struct)) {