 <p><a href="http://www.scala-lang.org/node/3388">This thread</a> seems to describe the solution:</p> <pre><code>object Test { def apply( int : Int ) = new Test( int ) } class Test @deprecated( "Don't construct directly - use companion constructor", "09/04/13" ) ( int : Int ) { override def toString() = "Test: %d".format( int ) } </code></pre> <p>Can't try it right now though.</p>