PROBLEM: NullReferenceException was Unhandled – Reference not set to an instance of an object. Use the New Keyword to create an object instance. Reading up on Static Vs Instance Methods will be of benefit. As of the writing of this, you can find links at. http://www.pragimtech.com/Methods.aspx (very good article). http://en.wikipedia.org/wiki/Static_method#Static_methods http://www.cs.berkeley.edu/~kamil/teaching/sp03/020303.pdf (uses JAVA as the example code, but explanation is good.) Call that failed as it in turn called another function in it's own Class (see bottom of document): MOVE "Checking instantiation before Returning DLL..." to WS-MESSAGE. INVOKE myVBDOTNETDLL "VBDotNetMsgBox" USING WS-MESSAGE. This call from COBOL will fail with the Subject message unless you use the NEW declaritive as described below, or change your called DLL functions to SHARE. The strongly recommended solution is to use the NEW method to get an instance of your DLL you wish to use. You may wonder about this, as your call to your DLL may work for a Function or method that is a function or method in the DLL that does not call out to anything else. As soon as you call to something that requires another resource of the same DLL, it will fail. Whether in C#, VB.NET, or other mixed language, the functions you call are not visible unless you create an instance of them, or declare them(see note above on links to read up on). You can find samples on the Alchemy Website of the NEW creation of an instance. A COBOL to VB.NET, or C# examples are available. If you are using VB.NET research the "SHARED" and "PUBLIC" method qualifiers. So for example, without the “INVOKE CLASS-name “NEW” RETURNING name(your DLL instance) the Function VBDotNetMsgBox will be found, but the routines it needs won’t be. You can use other method qualifiers, to get to sub-functions needed by the function you are calling (not the purpose of this quick helP), but the recommended and Supported method is to use NEW. ** Full text of working model ** --COBOL.NET - Create the NEW Instance of the VB.NET DLL trying to call the Messagebox. IF WS-FIRST-TIME = "Y" MOVE "N" TO WS-FIRST-TIME INVOKE CLASS-VBDOTNETDLL "NEW" RETURNING myVBDOTNETDLL. MOVE "Checking instantiation before Returning DLL..." to WS-MESSAGE. INVOKE myVBDOTNETDLL "VBDotNetMsgBox" USING WS-MESSAGE. --VB.NET - From DLL\Class Public Sub VBDotNetMsgBox(ByVal lstrIn As String) MsgBox(Date_And_Time() & " " & lstrIn) End Sub Function Date_And_Time() As String Date_And_Time = Now() End Function For additonal help – See our samples, contact Support for help, or MoserSoft.COM (a partner with Alchemy).