diff --git a/lib/api.php b/lib/api.php
index 00a3dc108e16b96f4cdb6bf13d36484c956bcef9..fd2c621f389c084b423d9a8f807e61e07d0a6fa2 100644
--- a/lib/api.php
+++ b/lib/api.php
@@ -40,8 +40,10 @@ class OC_API {
 	*/
 	public static function register($method, $url, $action, $app){
 		$name = strtolower($method).$url;
+		$name = str_replace(array('/', '{', '}'), '_', $name);
 		if(!isset(self::$actions[$name])){
-			OC_Router::create($name, $url.'.{format}')
+			OC::$router->create($name, $url.'.{_format}')
+				->defaults(array('_format'=>'xml'))
 				->action('OC_API', 'call');
 			self::$actions[$name] = array();
 		}