Could you post an executable code snippet, which would show the failure to learn in the first approach and the successful training in the second?
Have you measured the mean +/- stddev accuracy for both approaches? If so, could you post them here as well, please?