Index: /Include/Classes/System/Math.ab
===================================================================
--- /Include/Classes/System/Math.ab	(revision 91)
+++ /Include/Classes/System/Math.ab	(revision 92)
@@ -147,5 +147,5 @@
 		End If
 
-		Return Sin(_System_HalfPI - Abs(x))
+		Return Math.Sin((_System_HalfPI - Abs(x)) As Double)
 	End Function
 
@@ -510,5 +510,5 @@
 		Dim t As Double
 
-		t = urTan(value * 0.5, k)
+		t = urTan((value * 0.5) As Double, k)
 		t = 2 * t / (1 + t * t)
 		If (k And 1) = 0 Then 'k mod 2 = 0 Then
@@ -587,9 +587,11 @@
 	End Function
 
+	'ToString
+
 	Static Function Truncate(x As Double) As Double
 		return Fix(x)
 	End Function
 
-Private
+'Private
 	Static Function urTan(x As Double, ByRef k As Long) As Double
 		Dim i As Long
@@ -597,7 +599,7 @@
 
 		If x >= 0 Then
-			k = ( ( Fix(x * _System_InverseHalfPI) As Double ) + 0.5 ) As Long
-		Else
-			k = ( ( Fix(x * _System_InverseHalfPI) As Double ) - 0.5 ) As Long
+			k = Fix(x * _System_InverseHalfPI) + 0.5
+		Else
+			k = Fix(x * _System_InverseHalfPI) - 0.5
 		End If
 		x = (x - (3217.0 / 2048.0) * k) + _System_D * k
Index: /Include/basic/function.sbp
===================================================================
--- /Include/basic/function.sbp	(revision 91)
+++ /Include/basic/function.sbp	(revision 92)
@@ -139,8 +139,8 @@
 Function _System_SetSign(x As Double, isNegative As Long) As Double
 #ifdef _WIN64
-	SetQWord(VarPtr(CopySign), (GetQWord(VarPtr(x)) And &h7fffffffffffffff) Or (isNegative << 63))
+	SetQWord(AddressOf(CopySign), (GetQWord(VarPtr(x)) And &h7fffffffffffffff) Or (isNegative << 63))
 #else
-	SetDWord(VarPtr(CopySign), GetDWord(VarPtr(x)))
-	SetDWord(VarPtr(CopySign) + SizeOf (DWord), GetQWord(VarPtr(x) + SizeOf (DWord)) And &h7fffffff Or (isNegative << 31))
+	SetDWord(AddressOf(CopySign), GetDWord(VarPtr(x)))
+	SetDWord(AddressOf(CopySign) + SizeOf (DWord), GetQWord(VarPtr(x) + SizeOf (DWord)) And &h7fffffff Or (isNegative << 31))
 #endif
 End Function
@@ -175,13 +175,13 @@
 
 Function CDWord(num As Double) As DWord
-	CDWord=num
+	CDWord=num As DWord
 End Function
 
 Function CInt(number As Double) As Long
-	CInt=number
+	CInt=number As Long
 End Function
 
 Function CSng(number As Double) As Single
-	CSng=number
+	CSng=number As Single
 End Function
 
@@ -279,5 +279,5 @@
 
 Function Sin(number As Double) As Double
-	Sin = Math.Sin(number)
+	Sin = Math.Sign(number)
 End Function
 
@@ -322,5 +322,5 @@
 	p[0] = 0
 	nan = _System_GetInf(/*x,*/ FALSE)
-	IsNaNOrInf = (memcmp(p, VarPtr(nan), SizeOf (Double)) = 0)
+	IsNaNOrInf = (memcmp(p As BytePtr, VarPtr(nan), SizeOf (Double)) = 0)
 End Function
 
