Index: vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/DoubleType.vb
===================================================================
--- vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/DoubleType.vb	(revision 65334)
+++ vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/DoubleType.vb	(working copy)
@@ -54,7 +54,7 @@
             End If
 
             If TypeOf Value Is String Then
-                Return FromString(Convert.ToString(Value), NumberFormat)
+                Return FromString(DirectCast(Value, String), NumberFormat)
             End If
 
             Return Convert.ToDouble(Value)
Index: vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/DecimalType.vb
===================================================================
--- vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/DecimalType.vb	(revision 65334)
+++ vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/DecimalType.vb	(working copy)
@@ -67,23 +67,23 @@
             Dim type1 As Type = Value.GetType()
             Select Case Type.GetTypeCode(type1)
                 Case TypeCode.Boolean
-                    Return (-1) * Convert.ToDecimal(CBool(Value))
+                    Return (-1) * Convert.ToDecimal(DirectCast(Value, Boolean))
                 Case TypeCode.Byte
-                    Return Convert.ToDecimal(CByte(Value))
+                    Return Convert.ToDecimal(DirectCast(Value, Byte))
                 Case TypeCode.Double
-                    Return Convert.ToDecimal(CDbl(Value))
+                    Return Convert.ToDecimal(DirectCast(Value, Double))
                 Case TypeCode.Decimal
-                    Return CDec(Value)
+                    Return DirectCast(Value, Decimal)
                 Case TypeCode.Int32
-                    Return Convert.ToDecimal(Value)
+                    Return Convert.ToDecimal(DirectCast(Value, Integer))
                 Case TypeCode.Int16
-                    Return Convert.ToDecimal(CShort(Value))
+                    Return Convert.ToDecimal(DirectCast(Value, Short))
                 Case TypeCode.Int64
-                    Return Convert.ToDecimal(CLng(Value))
+                    Return Convert.ToDecimal(DirectCast(Value, Long))
                 Case TypeCode.Single
-                    Return Convert.ToDecimal(CSng(Value))
+                    Return Convert.ToDecimal(DirectCast(Value, Single))
                 Case TypeCode.String
-                    Return Parse(Convert.ToString(Value), NumberFormat)
+                    Return Parse(DirectCast(Value, String), NumberFormat)
                 Case Else
                     Throw New InvalidCastException
             End Select
Index: vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/CharArrayType.vb
===================================================================
--- vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/CharArrayType.vb	(revision 65334)
+++ vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/CharArrayType.vb	(working copy)
@@ -38,7 +38,7 @@
         Public Shared Function FromObject(ByVal Value As Object) As Char()
             Select Case (Type.GetTypeCode(Value.GetType()))
                 Case TypeCode.String
-                    Return CharArrayType.FromString(Value.ToString())
+                    Return CharArrayType.FromString(DirectCast(Value, String))
                 Case Else
                     'TODO: add tests and check this case.
                     Throw New NotImplementedException
Index: vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/DateType.vb
===================================================================
--- vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/DateType.vb	(revision 65334)
+++ vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/DateType.vb	(working copy)
@@ -50,7 +50,7 @@
             'End If
 
             If TypeOf Value Is String Then
-                Return FromString(Convert.ToString(Value))
+                Return FromString(DirectCast(Value, String))
             End If
 
             If TypeOf Value Is Date Then
Index: vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/CharType.vb
===================================================================
--- vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/CharType.vb	(revision 65334)
+++ vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/CharType.vb	(working copy)
@@ -55,7 +55,7 @@
             End If
 
             If TypeOf Value Is String Then
-                Return CharType.FromString(Convert.ToString(Value))
+                Return CharType.FromString(DirectCast(Value, String))
             End If
 
             Return Convert.ToChar(Value)
Index: vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/BooleanType.vb
===================================================================
--- vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/BooleanType.vb	(revision 65334)
+++ vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/BooleanType.vb	(working copy)
@@ -79,7 +79,7 @@
             End If
 
             If TypeOf Value Is String Then
-                Return FromString(CStr(Value))
+                Return FromString(DirectCast(Value, String))
             End If
 
             Throw New ArgumentException("Value")
Index: vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/SingleType.vb
===================================================================
--- vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/SingleType.vb	(revision 65334)
+++ vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/SingleType.vb	(working copy)
@@ -54,7 +54,7 @@
             End If
 
             If TypeOf Value Is String Then
-                Return Parse(Convert.ToString(Value), NumberFormat)
+                Return Parse(DirectCast(Value, String), NumberFormat)
             End If
 
             Return Convert.ToSingle(Value)
Index: vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/IntegerType.vb
===================================================================
--- vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/IntegerType.vb	(revision 65334)
+++ vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/IntegerType.vb	(working copy)
@@ -46,23 +46,23 @@
             Dim type1 As Type = Value.GetType()
             Select Case Type.GetTypeCode(type1)
                 Case TypeCode.Boolean
-                    Return (-1) * Convert.ToInt32(CBool(Value))
+                    Return (-1) * Convert.ToInt32(DirectCast(Value, Boolean))
                 Case TypeCode.Byte
-                    Return CByte(Value)
+                    Return DirectCast(Value, Byte)
                 Case TypeCode.Double
-                    Return Convert.ToInt32(CDbl(Value))
+                    Return Convert.ToInt32(DirectCast(Value, Double))
                 Case TypeCode.Decimal
-                    Return Convert.ToInt32((CDec(Value)))
+                    Return Convert.ToInt32((DirectCast(Value, Decimal)))
                 Case TypeCode.Int32
-                    Return Convert.ToInt32(Value)
+                    Return DirectCast(Value, Integer)
                 Case TypeCode.Int16
-                    Return CShort(Value)
+                    Return DirectCast(Value, Short)
                 Case TypeCode.Int64
-                    Return Convert.ToInt32(CLng(Value))
+                    Return Convert.ToInt32(DirectCast(Value, Long))
                 Case TypeCode.Single
-                    Return Convert.ToInt32(CSng(Value))
+                    Return Convert.ToInt32(DirectCast(Value, Single))
                 Case TypeCode.String
-                    Return IntegerType.FromString(Value.ToString())
+                    Return IntegerType.FromString(DirectCast(Value, String))
                 Case Else
                     Throw New InvalidCastException
             End Select
Index: vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/ShortType.vb
===================================================================
--- vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/ShortType.vb	(revision 65334)
+++ vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.CompilerServices/ShortType.vb	(working copy)
@@ -45,7 +45,7 @@
             End If
 
             If TypeOf Value Is String Then
-                Return FromString(Convert.ToString(Value))
+                Return FromString(DirectCast(Value, String))
             End If
 
             Return Convert.ToInt16(Value)
Index: vbruntime/VB.build.bat
===================================================================
--- vbruntime/VB.build.bat	(revision 65334)
+++ vbruntime/VB.build.bat	(working copy)
@@ -127,7 +127,7 @@
 resgen strings.txt
 rem TODO: replace vbc with C:\cygwin\monobuild\vbnc\vbnc\bin\vbnc.exe 
 echo on
-vbc -target:library -optionstrict+ -out:..\bin\Microsoft.VisualBasic.dll -novbruntimeref %VB_COMPILE_OPTIONS% %VB_COMPILE_OPTIONS_J2EE% -r:mscorlib.dll -r:System.dll -r:System.Windows.Forms.dll -keyfile:msfinal.pub /res:strings.resources %VB_SOURCES%
+vbc /debug:full -target:library -optionstrict+ -out:..\bin\Microsoft.VisualBasic.dll -novbruntimeref %VB_COMPILE_OPTIONS% %VB_COMPILE_OPTIONS_J2EE% -r:mscorlib.dll -r:System.dll -r:System.Windows.Forms.dll -keyfile:msfinal.pub /res:strings.resources %VB_SOURCES%
 IF %ERRORLEVEL% NEQ 0 GOTO EXCEPTION
 
 :FINALLY
