&gt; Assignment of blame is important, but it is often an opinion.<p>When in doubt, ask the specification. If there was no specification, why was any code written at all?<p>&gt; If one program misuses another, usually the fix can be an alteration in either one or both.<p>Actually, there are three possibilities:<p>(0) The used program doesn&#x27;t comply with its specification.<p>(1) The using program doesn&#x27;t comply with its specification.<p>(2) The specifications of both programs are mutually inconsistent. In which case, it&#x27;s a programming mistake to connect both programs.<p>&gt; The used program can be expanded to accept the &quot;misuse&quot; which is actually legitimate but not in the requirements.<p>If it isn&#x27;t in the specification, it isn&#x27;t legitimate, period.<p>&gt; Or the using program can be altered not to generate the misuse.<p>Sure.