Index: /trunk/Include/Classes/System/Collections/Generic/Dictionary.ab
===================================================================
--- /trunk/Include/Classes/System/Collections/Generic/Dictionary.ab	(revision 392)
+++ /trunk/Include/Classes/System/Collections/Generic/Dictionary.ab	(revision 393)
@@ -40,6 +40,4 @@
 
 	Virtual Function Item(key As Key) As T
-		Imports System.Collections.Generic.Detail
-
 		If Object.ReferenceEquals(key, Nothing) Then
 			'Throw ArgumentNullError
@@ -48,5 +46,5 @@
 		End If
 
-		Dim hash = key.GetHashCode Mod al.Count
+		Dim hash = getHash(key)
 		Dim a = al[hash] As ArrayList
 
@@ -54,5 +52,5 @@
 			Dim i As Long
 			For i = 0 To ELM(a.Count)
-				Dim pair = a[i] As Pair
+				Dim pair = a[i] As Detail.Pair
 				If pair.Key.Equals(key) Then
 					Return pair.Value
@@ -63,10 +61,7 @@
 		'KeyNotFoundException
 		Return Nothing
-
 	End Function
 
 	Virtual Sub Item(key As Key, value As T)
-		Imports System.Collections.Generic.Detail
-
 		If Object.ReferenceEquals(key, Nothing) Then
 			'Throw ArgumentNullError
@@ -74,5 +69,5 @@
 		End If
 
-		Dim hash = key.GetHashCode Mod al.Count
+		Dim hash = getHash(key)
 		Dim a = al[hash] As ArrayList
 
@@ -83,5 +78,5 @@
 			Dim i As Long
 			For i = 0 To ELM(a.Count)
-				Dim pair = a[i] As Pair
+				Dim pair = a[i] As Detail.Pair
 				If pair.Key.Equals(key) Then
 					pair.Value = value
@@ -90,5 +85,5 @@
 		End If
 
-		a.Add(New Pair(key, value))
+		a.Add(New Detail.Pair(key, value))
 	End Sub
 
@@ -108,6 +103,4 @@
 	'Methods
 	Sub Add(key As Key, value As T)
-		Imports System.Collections.Generic.Detail
-
 		If Object.ReferenceEquals(key, Nothing) Then
 			'Throw ArgumentNullError
@@ -115,5 +108,5 @@
 		End If
 
-		Dim hash = key.GetHashCode Mod al.Count
+		Dim hash = getHash(key)
 		Dim a = al[hash] As ArrayList
 
@@ -124,5 +117,5 @@
 			Dim i As Long
 			For i = 0 To ELM(a.Count)
-				Dim pair = a[i] As Pair
+				Dim pair = a[i] As Detail.Pair
 				If pair.Key.Equals(key) Then
 					'Throw ArgumentError
@@ -131,7 +124,7 @@
 		End If
 
-		a.Add(New Pair(key, value))
+		a.Add(New Detail.Pair(key, value))
 
-		count ++
+		count++
 	End Sub
 
@@ -168,9 +161,10 @@
 	Sub initialize(c As Long)
 		al = ArrayList.Repeat(Nothing, c)
-		Dim e = al[0]
-		Dim p = ObjPtr(e) As ULONG_PTR
-
 		count = 0
 	End Sub
+
+	Function getHash(key As Object) As Long
+		Return (key.GetHashCode As DWord) Mod al.Count
+	End Function
 
 	al As ArrayList
