I am not sure how Ehresmann dealt with it, but generally the French replaced conditions on limits by conditions on the representable functors. So to say that c is a category object in some category C is to say that the functor Hom(c,-): C --> Set factors through Cat. More precisely, to give a category structure on c is to prescribe a factorization of Hom(C,-) through Cat. It is easy to see (using Yoneda) that in the presence of pullbacks the two definitions agree. They were quite consistent about this. They would not have said that pullbacks exist (the existence in their sense being automatic since Set-valued functor categories have pullbacks) but rather that pullbacks were representable. In other words to them the pullback existed at the level of hom functors and if the pullback (functor) was representable then it exists in our sense. I have always thought that this usage went back to Grothendieck, but perhaps it was originally Ehresmann's. I have the impression that Ehresmann got interested in categories before Grothendieck. This process is more or less the same as completing the category using the Yoneda embedding. Michael