Index: xstream/src/java/com/thoughtworks/xstream/converters/basic/IntConverter.java
===================================================================
--- xstream/src/java/com/thoughtworks/xstream/converters/basic/IntConverter.java	(revision 1100)
+++ xstream/src/java/com/thoughtworks/xstream/converters/basic/IntConverter.java	(working copy)
@@ -13,7 +13,11 @@
     }
 
     public Object fromString(String str) {
-        return Integer.decode(str);
+    	long value = Long.decode(str).longValue();
+    	if(value < Integer.MIN_VALUE || value > 0xFFFFFFFFl) {
+    		throw new NumberFormatException("For input string: \"" + str + '"');
+    	}
+        return new Integer((int)value);
     }
 
 }
Index: xstream/src/java/com/thoughtworks/xstream/converters/basic/LongConverter.java
===================================================================
--- xstream/src/java/com/thoughtworks/xstream/converters/basic/LongConverter.java	(revision 1100)
+++ xstream/src/java/com/thoughtworks/xstream/converters/basic/LongConverter.java	(working copy)
@@ -13,7 +13,7 @@
     }
 
     public Object fromString(String str) {
-        return Long.valueOf(str);
+        return Long.decode(str);
     }
 
 }
Index: xstream/src/java/com/thoughtworks/xstream/converters/basic/ShortConverter.java
===================================================================
--- xstream/src/java/com/thoughtworks/xstream/converters/basic/ShortConverter.java	(revision 1100)
+++ xstream/src/java/com/thoughtworks/xstream/converters/basic/ShortConverter.java	(working copy)
@@ -13,7 +13,11 @@
     }
 
     public Object fromString(String str) {
-        return Short.valueOf(str);
+    	int value = Integer.decode(str).intValue();
+    	if(value < Short.MIN_VALUE || value > 0xFFFF) {
+    		throw new NumberFormatException("For input string: \"" + str + '"');
+    	}
+        return new Short((short)value);
     }
 
 }
Index: xstream/src/java/com/thoughtworks/xstream/converters/basic/ByteConverter.java
===================================================================
--- xstream/src/java/com/thoughtworks/xstream/converters/basic/ByteConverter.java	(revision 1100)
+++ xstream/src/java/com/thoughtworks/xstream/converters/basic/ByteConverter.java	(working copy)
@@ -13,7 +13,11 @@
     }
 
     public Object fromString(String str) {
-        return new Byte((byte) Integer.parseInt(str));
+    	int value = Integer.decode(str).intValue();
+    	if(value < Byte.MIN_VALUE || value > 0xFF) {
+    		throw new NumberFormatException("For input string: \"" + str + '"');
+    	}
+        return new Byte((byte)value);
     }
 
 }

