diff --git a/services.runtime.inc b/services.runtime.inc
index 7db15b5..1099e33 100644
--- a/services.runtime.inc
+++ b/services.runtime.inc
@@ -146,7 +146,9 @@ function services_controller_execute($controller, $args = array(), $options = ar
   // Check if the arguments should be preprocessed
   if (!empty($controller['endpoint']['preprocess'])) {
     foreach ($controller['endpoint']['preprocess'] as $callable) {
-      call_user_func_array($callable, array(&$args, &$controller));
+      if (function_exists($callable)) {
+        call_user_func_array($callable, array(&$args, &$controller));
+      }
     }
   }
 
@@ -159,7 +161,9 @@ function services_controller_execute($controller, $args = array(), $options = ar
   // Check if the result should be post-processed
   if (!empty($controller['endpoint']['postprocess'])) {
     foreach ($controller['endpoint']['postprocess'] as $callable) {
-      call_user_func_array($callable, array(&$args, $controller));
+      if (function_exists($callable)) {
+        $result=call_user_func_array($callable, array($args, $controller, $result));
+      }
     }
   }
 
