 <p>Found the answer:</p> <ol> <li>The repeater had nothing to do with the problem.</li> <li><p>In Default.aspx, I needed to register the control by name rather than by namespace.</p> <pre><code>&lt;%@ Register TagPrefix="a" Namespace="nestedcontroltest" Assembly="nestedcontroltest" %&gt; </code></pre> <p>Needs to be changed to</p> <pre><code>&lt;%@ Register TagPrefix="a" TagName="MyControl" Src="~/MyControl.ascx" %&gt; </code></pre></li> </ol> <p>And then the control gets initialized properly, even when it's in the repeater. Perhaps a bug in ASP.net, or perhaps I needed to use the full assembly name? Regardless, thanks for all your help guys.</p>