diff --git a/jvm/src/test/scala/scala/xml/SerializationTest.scala b/jvm/src/test/scala/scala/xml/SerializationTest.scala
new file mode 100644
index 000000000..6a63eae84
--- /dev/null
+++ b/jvm/src/test/scala/scala/xml/SerializationTest.scala
@@ -0,0 +1,45 @@
+package scala.xml
+
+import java.io._
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class SerializationTest {
+ def roundTrip[T](obj: T): T = {
+ def serialize(in: T): Array[Byte] = {
+ val bos = new ByteArrayOutputStream()
+ val oos = new ObjectOutputStream(bos)
+ oos.writeObject(in)
+ oos.flush()
+ bos.toByteArray()
+ }
+
+ def deserialize(in: Array[Byte]): T = {
+ val bis = new ByteArrayInputStream(in)
+ val ois = new ObjectInputStream(bis)
+ ois.readObject.asInstanceOf[T]
+ }
+
+ deserialize(serialize(obj))
+ }
+
+ @Test
+ def xmlLiteral: Unit = {
+ val n =
+ assertEquals(n, roundTrip(n))
+ }
+
+ @Test
+ def empty: Unit = {
+ assertEquals(NodeSeq.Empty, roundTrip(NodeSeq.Empty))
+ }
+
+ @Test
+ def implicitConversion: Unit = {
+ val parent =
+ val children: Seq[Node] = parent.child
+ val asNodeSeq: NodeSeq = children
+ assertEquals(asNodeSeq, roundTrip(asNodeSeq))
+ }
+}
diff --git a/shared/src/main/scala/scala/xml/NodeSeq.scala b/shared/src/main/scala/scala/xml/NodeSeq.scala
index c498279e9..7092bb974 100644
--- a/shared/src/main/scala/scala/xml/NodeSeq.scala
+++ b/shared/src/main/scala/scala/xml/NodeSeq.scala
@@ -42,7 +42,7 @@ object NodeSeq {
* @author Burak Emir
* @version 1.0
*/
-abstract class NodeSeq extends AbstractSeq[Node] with immutable.Seq[Node] with SeqLike[Node, NodeSeq] with Equality {
+abstract class NodeSeq extends AbstractSeq[Node] with immutable.Seq[Node] with SeqLike[Node, NodeSeq] with Equality with Serializable {
/** Creates a list buffer as builder for this class */
override protected[this] def newBuilder = NodeSeq.newBuilder