Within Group order should be before normal order.

Working Example: 

SELECT *  FROM `title_core`, `title_delta`  WHERE MATCH('@sphinx_internal_class_name (Title)') AND sphinx_deleted = 0  GROUP BY movie_id  WITHIN GROUP ORDER BY @weight DESC ORDER BY @weight DESC   LIMIT 0, 20;

Not Working example:

SELECT *  FROM `title_core`, `title_delta`  WHERE MATCH('@sphinx_internal_class_name (Title)') AND sphinx_deleted = 0  GROUP BY movie_id  ORDER BY @weight DESC WITHIN GROUP ORDER BY @weight DESC   LIMIT 0, 20;


Tested on sphinx 2.0.6