Index: Include/Classes/System/IO/DirectoryInfo.ab
===================================================================
--- Include/Classes/System/IO/DirectoryInfo.ab	(revision 282)
+++ Include/Classes/System/IO/DirectoryInfo.ab	(revision 285)
@@ -45,6 +45,6 @@
 
 			' 終端の '\' を除去
-			If dirPath[dirPath.Length-1] = Asc("\\") Then
-				dirPath = dirPath.SubString(0, dirPath.Length-1)
+			If dirPath[dirPath.Length-1] = Asc("\") Then
+				dirPath = dirPath.Substring(0, dirPath.Length-1)
 			End If
 
@@ -55,5 +55,5 @@
 			op.hwnd = NULL
 			op.wFunc = FO_DELETE
-			op.pFrom = dirPath.Chars
+			op.pFrom = ToTCStr(dirPath)
 			op.pTo = NULL
 			op.fFlags = FOF_NOCONFIRMATION or FOF_NOERRORUI or FOF_SILENT
Index: Include/Classes/System/IO/DriveInfo.ab
===================================================================
--- Include/Classes/System/IO/DriveInfo.ab	(revision 282)
+++ Include/Classes/System/IO/DriveInfo.ab	(revision 285)
@@ -40,5 +40,5 @@
 	Function DriveFormat() As String
 		Dim systemName[15] As TCHAR
-		If GetVolumeInformation(m_DriveName, NULL, NULL, NULL, NULL, NULL, systemName, Len (systemName)) Then
+		If GetVolumeInformation(m_DriveName, NULL, 0, NULL, NULL, NULL, systemName, Len (systemName)) Then
 			Return systemName
 		Else
@@ -52,5 +52,5 @@
 
 	Function IsReady() As Boolean
-		If GetVolumeInformation(m_DriveName, NULL, NULL, NULL, NULL, NULL, NULL, NULL) Then
+		If GetVolumeInformation(m_DriveName, NULL, 0, NULL, NULL, NULL, NULL, 0) Then
 			Return True
 		Else
Index: Include/Classes/System/IO/Path.ab
===================================================================
--- Include/Classes/System/IO/Path.ab	(revision 282)
+++ Include/Classes/System/IO/Path.ab	(revision 285)
@@ -72,7 +72,7 @@
 
 		Dim tempFileName[ELM(MAX_PATH)] As TCHAR
-		__GetTempFileName(tempPath, "ABT", 0, tempFileName)
-		free(tempPath)
-		Return tempFileName
+		Dim len = __GetTempFileName(tempPath, "ABT", 0, tempFileName)
+		_System_free(tempPath)
+		Return New String(tempFileName, len As Long)
 	End Function
 
Index: Include/Classes/System/Math.ab
===================================================================
--- Include/Classes/System/Math.ab	(revision 282)
+++ Include/Classes/System/Math.ab	(revision 285)
@@ -172,7 +172,5 @@
 			End If
 		End If
-		Dim i As Long, k As Long
-		Dim x2 As Double, w As Double
-
+		Dim k As Long
 		If x >= 0 Then
 			k = Fix(x / _System_LOG2 + 0.5)
@@ -183,8 +181,8 @@
 		x -= k * _System_LOG2
 
-		x2 = x * x
-		w = x2 / 22
-
-		i = 18
+		Dim x2 = x * x
+		Dim w = x2 / 22
+
+		Dim i = 18
 		While i >= 6
 			w = x2 / (w + i)
Index: Include/Classes/System/String.ab
===================================================================
--- Include/Classes/System/String.ab	(revision 282)
+++ Include/Classes/System/String.ab	(revision 285)
@@ -506,4 +506,5 @@
 			Clone = This
 		End Function
+
 		Static Function Copy(s As String) As String
 			Copy = New String(s.Chars, s.m_Length)
@@ -520,5 +521,5 @@
 			Dim size = m_Length
 #endif
-			Return _System_GetHashFromWordArray(Chars As *Word, size)
+			Return _System_GetHashFromWordArray(Chars As *Word, size) Xor size
 		End Function
 
@@ -541,5 +542,5 @@
 
 		Function PadRight(total As Long) As String
-			PadLeft(total, &h30 As StrChar)
+			PadRight(total, &h30 As StrChar)
 		End Function
 
Index: Include/Classes/System/Windows/Forms/Control.ab
===================================================================
--- Include/Classes/System/Windows/Forms/Control.ab	(revision 282)
+++ Include/Classes/System/Windows/Forms/Control.ab	(revision 285)
@@ -309,5 +309,4 @@
 		' EndInvokeがDeleteする
 		Dim asyncResult = New System.Windows.Forms.Detail.AsyncResultForInvoke(CreateEvent(0, FALSE, FALSE, 0))
-		' OnControlBeginInvokeがDeleteする
 		Dim asyncInvokeData = New System.Windows.Forms.Detail.AsyncInvokeData
 		With asyncInvokeData
