diff --git a/dotnet/IEC61850forCSharp/MmsValue.cs b/dotnet/IEC61850forCSharp/MmsValue.cs index a9fa22f3..c545fcaa 100644 --- a/dotnet/IEC61850forCSharp/MmsValue.cs +++ b/dotnet/IEC61850forCSharp/MmsValue.cs @@ -336,7 +336,11 @@ namespace IEC61850 if ((type == MmsType.MMS_ARRAY) || (type == MmsType.MMS_STRUCTURE)) { if ((index >= 0) && (index < Size ())) { IntPtr value = MmsValue_getElement (valueReference, index); - return new MmsValue (value); + + if (value == IntPtr.Zero) + return null; + else + return new MmsValue (value); } else throw new MmsValueException ("Index out of bounds"); } else diff --git a/dotnet/IEC61850forCSharp/ReportControlBlock.cs b/dotnet/IEC61850forCSharp/ReportControlBlock.cs index 86a9ed6c..e23e56c4 100644 --- a/dotnet/IEC61850forCSharp/ReportControlBlock.cs +++ b/dotnet/IEC61850forCSharp/ReportControlBlock.cs @@ -202,7 +202,7 @@ namespace IEC61850 try { if (this.report == null) - this.report = new Report (report); + this.report = new Report (report); if (reportHandler != null) reportHandler(this.report, reportHandlerParameter);