diff -rN old-elephant-1.0/elephant-tests.asd new-elephant-1.0/elephant-tests.asd
73a74
> 	     (:file "testunicode")
diff -rN old-elephant-1.0/src/db-bdb/libberkeley-db.c new-elephant-1.0/src/db-bdb/libberkeley-db.c
1133c1133
<     return wcs_cmp((wchar_t*)ad+5+offset, read_int32(ad+offset, 1), (wchar_t*)bd+5+offset, read_int32(bd+offset, 1)); 
---
>       return wcs_cmp((wchar_t*)(ad+5+offset), read_int32(ad+offset, 1), (wchar_t*)(bd+5+offset), read_int32(bd+offset, 1)); 
1324c1324
<   diff = wcsncmp(a, b, min /4);
---
>   diff = wcsncmp(a, b, min);
diff -rN old-elephant-1.0/src/elephant/unicode.lisp new-elephant-1.0/src/elephant/unicode.lisp
148c148
<                     (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 2) size))
---
>                     (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 2) size 1))
151c151
<                     (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 2) size 1))
---
>                     (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 2) size 0))
177c177
< 		    (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 4) size 0))
---
> 		    (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 4) size 3))
179,180d178
< 		    (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 4) size 1))
< 			  (ldb (byte 8 16) code))
181a180,181
> 			  (ldb (byte 8 16) code))
> 		    (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 4) size 1))
183c183
< 		    (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 4) size 3))
---
> 		    (setf (uffi:deref-array buffer '(:array :unsigned-char) (+ (* i 4) size 0))
277,278c277,278
< 	   (setf code (dpb (next-byte 0) (byte 8 8) 0))
< 	   (setf code (dpb (next-byte 1) (byte 8 0) code))
---
> 	   (setf code (dpb (next-byte 1) (byte 8 8) 0))
> 	   (setf code (dpb (next-byte 0) (byte 8 0) code))
297,300c297,300
< 	 (setf code (dpb (next-byte 0) (byte 8 24) 0))
< 	 (setf code (dpb (next-byte 1) (byte 8 16) code))
< 	 (setf code (dpb (next-byte 2) (byte 8 8) code))
< 	 (setf code (dpb (next-byte 3) (byte 8 0) code))
---
> 	 (setf code (dpb (next-byte 3) (byte 8 24) 0))
> 	 (setf code (dpb (next-byte 2) (byte 8 16) code))
> 	 (setf code (dpb (next-byte 1) (byte 8 8) code))
> 	 (setf code (dpb (next-byte 0) (byte 8 0) code))
diff -rN old-elephant-1.0/tests/testdb/README new-elephant-1.0/tests/testdb/README
1d0
< This directory needs to exists for the tests to go smoothly.
diff -rN old-elephant-1.0/tests/testunicode.lisp new-elephant-1.0/tests/testunicode.lisp
0a1,17
> (in-package :ele-tests)
> 
> (in-suite elephant-tests)
> 
> (defpclass c ()
>   ((l :initarg :l :accessor l :index t)))
> 
> (test test-unicode
>     (with-open-store (*default-spec*)
>       (with-open-file (f (merge-pathnames (make-pathname :directory '(:relative "tests") :name "unicode.txt") (asdf:component-pathname (asdf:find-system 'elephant-tests))) :external-format :utf-8)
> 	(loop for line = (read-line f nil nil)
> 	      while line
> 	      do (make-instance 'c :l line))
> 	(let* ((un-sorted (mapcar #'l (get-instances-by-range 'c 'l nil nil)))
> 	       (sorted (sort (copy-list un-sorted) #'string<)))
> 	  (drop-instances (get-instances-by-range 'c 'l nil nil))
> 	  (is (equal un-sorted sorted))))))
\ No newline at end of file
diff -rN old-elephant-1.0/tests/unicode.txt new-elephant-1.0/tests/unicode.txt
0a1,7
> a:UTF-8 char-code:61
> x:UTF-8 char-code:78
> あ:UTF-16 char-code:3042
> 漢:UTF-16 char-code:6F22
> 𪎌:UTF-32 char-code:2A38C
> 𪐷:UTF-32 char-code:2A437
> 

