An orthogonal coloring of a graph G is a pair {c1, c2} of proper colorings of G, having the property that if two vertices are colored with the same color in c1, then they must have distinct colors in c2. The notion of orthogonal colorings is strongly related to the notion of orthogonal Latin squares. The orthogonal chromatic number of G, denoted by O(G), is the minimum possible number of colors used in an orthogonal coloring of G. If G has n vertices, then the definition implies that n O(G) n. G is said to have an optimal orthogonal coloring if O(G) = n . If, in addition, n is an integer square, then we say that G has a perfect orthogonal coloring, since for any two colors x and y, there is exactly one vertex colored by x in c1 and by y in c2. The purpose of this paper is to study the parameter O(G) and supply upper bounds to it which depend on other graph parameters such as the maximum degree and the chromatic number. We also study the structure of graphs having an optimal or per...