Initially written by Tadayuki Yoshida <tadayuki@jp.ibm.com>
with help from Yoshito Kawada <kawada@jp.ibm.com> and Hiroshi Inokawa <hiroshi@jp.ibm.com>
