Index: vbnc/vbnc/source/General/Compiler.vb
===================================================================
--- vbnc/vbnc/source/General/Compiler.vb	(revision 65147)
+++ vbnc/vbnc/source/General/Compiler.vb	(working copy)
@@ -301,7 +301,13 @@
         ModuleBuilder = AssemblyBuilder.DefineDynamicModule(assemblyName.Name, IO.Path.GetFileName(m_OutFilename), True)
 
         If m_CommandLine.DebugInfo <> vbnc.CommandLine.DebugTypes.None Then
+            If Helper.IsOnMS Then
+                GetType([Module]).GetField("m_iSymWriter", BindingFlags.Instance Or BindingFlags.NonPublic).SetValue(ModuleBuilder, New Mono.CompilerServices.SymbolWriter.SymbolWriterImpl())
+            End If
             m_SymbolWriter = ModuleBuilder.GetSymWriter()
+            If Helper.IsOnMS Then
+                m_SymbolWriter.Initialize(IntPtr.Zero, m_OutFilename, True)
+            End If
         End If
 
         Return True
@@ -537,6 +543,11 @@
 
             'Save the assembly
             AssemblyBuilder.Save(IO.Path.GetFileName(m_OutFilename))
+
+            If Helper.IsOnMS AndAlso m_CommandLine.DebugInfo <> vbnc.CommandLine.DebugTypes.None Then
+                DirectCast(m_SymbolWriter, Mono.CompilerServices.SymbolWriter.SymbolWriterImpl).Close(System.Reflection.Assembly.ReflectionOnlyLoadFrom(m_OutFilename).GetModules()(0).ModuleVersionId)
+            End If
+
             Compiler.Report.WriteLine(vbnc.Report.ReportLevels.Debug, String.Format("Assembly '{0}' saved successfully to '{1}'.", AssemblyBuilder.FullName, m_OutFilename))
 
             SequenceTime(CompilerSequence.End) = DateTime.Now
