Index: src/org/jruby/RubyFixnum.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/RubyFixnum.java,v
retrieving revision 1.31
diff -u -r1.31 RubyFixnum.java
--- src/org/jruby/RubyFixnum.java	2 Feb 2006 19:51:49 -0000	1.31
+++ src/org/jruby/RubyFixnum.java	19 Apr 2006 12:58:48 -0000
@@ -320,8 +320,16 @@
         return callCoerced("^", other);
     }
 
-    public RubyString to_s() {
-        return getRuntime().newString(String.valueOf(getLongValue()));
+    public RubyString to_s(final IRubyObject[] args) {
+        int radix = 10;
+        if (args.length > 1) {
+            throw getRuntime().newArgumentError(args.length, 1);
+        }
+        if(args.length==1) {
+            radix = RubyNumeric.fix2int(args[0]);
+        }
+        
+        return getRuntime().newString(Long.toString(getLongValue(),radix));
     }
 
     public RubyFloat to_f() {
Index: src/org/jruby/runtime/builtin/meta/FixnumMetaClass.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/runtime/builtin/meta/FixnumMetaClass.java,v
retrieving revision 1.7
diff -u -r1.7 FixnumMetaClass.java
--- src/org/jruby/runtime/builtin/meta/FixnumMetaClass.java	10 Feb 2006 21:53:25 -0000	1.7
+++ src/org/jruby/runtime/builtin/meta/FixnumMetaClass.java	19 Apr 2006 12:55:31 -0000
@@ -50,7 +50,7 @@
 		        defineMethod("quo", Arity.singleArgument());
 		        defineMethod("to_f", Arity.noArguments());
 		        defineMethod("to_i", Arity.noArguments());
-		        defineMethod("to_s", Arity.noArguments());
+		        defineMethod("to_s", Arity.optional());
 		        defineMethod("taint", Arity.noArguments());
 		        defineMethod("freeze", Arity.noArguments());
 		        defineMethod("<<", Arity.singleArgument(), "op_lshift");
