diff --git a/lib/api.php b/lib/api.php
index 90f36aefbcdd99a9b796f55c460fbce454111386..c91216179e2ed5cddafc7c96e9196b737c783974 100644
--- a/lib/api.php
+++ b/lib/api.php
@@ -107,16 +107,16 @@ class OC_API {
 		$numresponses = count($responses);
 		
 		foreach($responses as $response){
-			if(is_int($response) && empty($finalresponse)){
-				$finalresponse = $response;
+			if(is_int($response['response']) && empty($finalresponse)){
+				$finalresponse = $response['response'];
 				continue;
 			}
-			if(is_array($response)){
+			if(is_array($response['response'])){
 				// Shipped apps win
 				if(OC_App::isShipped($response['app'])){
-					$finalresponse = array_merge_recursive($finalresponse, $response);
+					$finalresponse = array_merge_recursive($finalresponse, $response['response']);
 				} else {
-					$finalresponse = array_merge_recursive($response, $finalresponse);
+					$finalresponse = array_merge_recursive($response['response'], $finalresponse);
 				}
 			}
 		}
diff --git a/settings/oauth.php b/settings/oauth.php
index 7f30161d852f21a7de95ecb001570dc2315c6a60..f088453a26acfc70314b73886a069b074cc24469 100644
--- a/settings/oauth.php
+++ b/settings/oauth.php
@@ -76,8 +76,8 @@ switch($operation){
 		}
 		break;
 	default:
-		// Something went wrong
-		header('Location: /');
+		// Something went wrong, we need an operation!
+		OC_Response::setStatus(400);
 	break;
 	
 }