diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfParsleyUtil.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfParsleyUtil.java
index f351856..7df35c5 100644
--- a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfParsleyUtil.java
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfParsleyUtil.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.emf.parsley.util;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
@@ -46,6 +47,8 @@
 			return Lists.newArrayList((Iterable<?>) contents);
 		} else if (contents instanceof Iterator<?>) {
 			return Lists.newArrayList((Iterator<?>) contents);
+		} else if (contents.getClass().isArray()) {
+			return Arrays.asList((Object[]) contents);
 		} else {
 			return Collections.singleton(contents);
 		}
diff --git a/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/EmfParsleyUtilTest.xtend b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/EmfParsleyUtilTest.xtend
index 9ff5b53..645a1de 100644
--- a/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/EmfParsleyUtilTest.xtend
+++ b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/EmfParsleyUtilTest.xtend
@@ -45,6 +45,12 @@
 	}
 
 	@Test
+	def void testEnsureCollectionGivenArray() {
+		assertEquals(2, EmfParsleyUtil.ensureCollection(createArray())
+				.size());
+	}
+
+	@Test
 	def void testEnsureCollectionGivenIterable() {
 		assertEquals(2, EmfParsleyUtil.ensureCollection(createIterable())
 				.size());
@@ -77,6 +83,11 @@
 				EmfParsleyUtil.toIntArray(list).map[toString].join(", "));
 	}
 
+	def protected Object[] createArray() {
+		val Object[] arr = #{ EXTLibraryFactory.eINSTANCE.createBook(), EXTLibraryFactory.eINSTANCE.createBook() };
+		return arr;
+	}
+
 	def protected Iterable<EObject> createIterable() {
 		val library = EXTLibraryFactory.eINSTANCE.createLibrary();
 		library.getBooks().add(EXTLibraryFactory.eINSTANCE.createBook());
