Index: src/clj/clojure/boot.clj
===================================================================
--- src/clj/clojure/boot.clj	(revision 1035)
+++ src/clj/clojure/boot.clj	(working copy)
@@ -1487,11 +1487,15 @@
       (apply import (rest import-lists))))
 
 (defn into-array
-  "Returns an array of the type of the first element in coll,
-  containing the contents of coll, which must be of a compatible
-  type."
-  [aseq]
-    (. clojure.lang.RT (seqToTypedArray (seq aseq))))
+  "Returns an array with components set to the values in aseq. The array's
+  component type is type if provided, or the type of the first value in
+  aseq if present, or Object. All values in aseq must be compatible with
+  the component type. Class objects for the primitive types can be obtained
+  using, e.g., Integer/TYPE."
+  ([aseq]
+     (clojure.lang.RT/seqToTypedArray (seq aseq)))
+  ([type aseq]
+     (clojure.lang.RT/seqToTypedArray type (seq aseq))))
 
 (defn into
   "Returns a new coll consisting of to-coll with all of the items of
@@ -1757,7 +1761,7 @@
   the specified dimension(s).  Note that a class object is required.
   Class objects can be obtained by using their imported or
   fully-qualified name.  Class objects for the primitive types can be
-  obtained using, e.g., (. Integer TYPE)."
+  obtained using, e.g., Integer/TYPE."
   ([#^Class type len]
    (. Array (newInstance type (int len))))
   ([#^Class type dim & more-dims]
Index: src/jvm/clojure/lang/RT.java
===================================================================
--- src/jvm/clojure/lang/RT.java	(revision 1035)
+++ src/jvm/clojure/lang/RT.java	(working copy)
@@ -1073,8 +1073,12 @@
 }
 
 static public Object seqToTypedArray(ISeq seq) throws Exception{
-	int len = length(seq);
-	Object ret = Array.newInstance(len > 0 ? seq.first().getClass() : Object.class, len);
+	Class type = (seq != null) ? seq.first().getClass() : Object.class;
+	return seqToTypedArray(type, seq);
+}
+
+static public Object seqToTypedArray(Class type, ISeq seq) throws Exception{
+	Object ret = Array.newInstance(type, length(seq));
 	for(int i = 0; seq != null; ++i, seq = seq.rest())
 		Array.set(ret, i, seq.first());
 	return ret;
