The following example shows a bug which i cannot resolve at the moment. It might be in the class StringTokenizer or in the native AWT layer. I am not sure if this reproduces in my environment only (Linux i386 JIT, Kernel 2.0.34). Can anyone help. -- import java.awt.*; import java.util.*; public class TestIt extends Canvas { Hashtable hash = new Hashtable(5); public TestIt() { String line = "one:Hello:two:Party:three:Fun:four:Beer"; StringTokenizer strtok = new StringTokenizer(line, ":"); String key, val; while (strtok.hasMoreTokens()) { key = strtok.nextToken(); val = strtok.nextToken(); hash.put(key, val); System.out.println("Key: "+key+", Value: "+val); } } public void paint(Graphics g) { // This one does not work: // cast from object to string and pass to native function // ==> the canvas shows "one:H", stdout shows "Party" String text = (String) hash.get("two"); System.out.println("drawString: "+text); g.drawString(text, 10, 20); // Workaround: String text2 = new String((String) hash.get("two")); System.out.println("drawString: "+text2); g.drawString(text2, 10, 40); } public static void main ( String[] args ) { Frame f = new Frame("TestIt"); TestIt t = new TestIt(); f.add(t); f.setBounds(10,10,150,80); f.setVisible(true); } } Thanks for your time. -- Juergen Sonnauer eMail: sonic@az-online.net