If G a subset of R^m is compact, and fn a sequence of functions from G to R^p, gn a sequence of functions from R^p to R^k, and fn and gn are continuous and converge to f and g uniformly (respectively), then gn(fn(.)) converges uniformly to g(f(.)).

1) Is this different from showing that g(f(x)) is uniformly continuous given that g and f are uniformly continuous? and
2) Where do I use compactness?
A little lost, would appreciate any help.
Thanks.