Abstract. Separable codes were introduced to provide protection against illegal redistribution of copyrighted multimedia material. Let C be a code of length n over an alphabet of q letters. The descendant code desc(C0) of C0 = {c1, c2, . . . , ct} ⊆ C is defined to be the set of words x = (x1, x2, . . . , xn)T such that xi ∈ {c1,i, c2,i, . . . , ct,i} for all i = 1, . . . , n, where cj = (cj,1, cj,2, . . . , cj,n)T . C is a t-separable code if for any two distinct C1, C2 ⊆ C with |C1| ≤ t, |C2| ≤ t, we always have desc(C1) = desc(C2). Let M (t, n, q) denote the maximal possible size of such a separable code. In this paper, an upper bound on M (3, 3, q) is derived by considering an optimization problem related to a partial Latin square, and then two constructions for 3-SC(3, M, q)s are provided by means of perfect hash families and Steiner triple systems.