Not a bug. The docs: "Sort usually orders expressions by putting shorter ones first, and then comparing parts in a depth‐first manner." You want `SortBy[list,N]`, I think. For more complex cases, use `Ordering[]` to get a list of indexes and use that to reorder the original list: Ordering@N@list list[[%]]