 				if not defered.promise.isRejected()
 					defered.resolve response
 
-	routeReq.on "error", (err) ->
-		response.status = status.INTERNAL_SERVER_ERROR
-		response.timestamp = new Date()
-		logger.error err
-		defered.reject err
+	routeReq.on "error", (err) -> defered.reject err
 
 	if ctx.request.method == "POST" || ctx.request.method == "PUT"
 		routeReq.write ctx.body

	client.on 'data', (chunk) ->
		bufs.push chunk
		
	client.on 'error', (err) ->
		response.status = status.INTERNAL_SERVER_ERROR
		response.timestamp = new Date()
		logger.error err
		defered.reject err

	client.on 'end', ->
		response.body = Buffer.concat bufs

					routeObj.properties = responseObj.properties
					routeObj.response = responseObj.response
				else
					routeObj.response = response

				ctx.routes = [] if not ctx.routes
				ctx.routes.push routeObj
			.fail (reason) ->
				# on failure
				handleServerError ctx, reason

		promises.push promise

