diff --git a/src/main/java/org/apache/commons/lang/RandomStringUtils.java b/src/main/java/org/apache/commons/lang/RandomStringUtils.java
index f7e2a4e..9576f3e 100644
--- a/src/main/java/org/apache/commons/lang/RandomStringUtils.java
+++ b/src/main/java/org/apache/commons/lang/RandomStringUtils.java
@@ -242,6 +242,10 @@
                     start = ' ';                
                 }
             }
+        } else {
+            if (end <= start) {
+                throw new IllegalArgumentException("Parameter end (" + end + ") must be greater than start (" + start + ")");
+            }
         }
 
         char[] buffer = new char[count];
diff --git a/src/site/changes/changes.xml b/src/site/changes/changes.xml
index be5bf49..e47a2b9 100644
--- a/src/site/changes/changes.xml
+++ b/src/site/changes/changes.xml
@@ -21,6 +21,7 @@
   </properties>
   <body>
   <release version="2.7" date="TBA" description="TBA (requires minimum of Java 1.3)">
+    <action issue="LANG-807" type="fix">RandomStringUtils throws confusing IAE when end &lt;= start</action>
     <action issue="LANG-805" type="fix">RandomStringUtils.random(count, 0, 0, false, false, universe, random) always throws java.lang.ArrayIndexOutOfBoundsException</action>
     <action issue="LANG-803" type="fix">LocaleUtils - DCL idiom is not thread-safe.</action>
     <action issue="LANG-677" type="fix">DateUtils isSameLocalTime() compares the hour using 12hour Calendar.HOUR instead of 24hour Calendar.HOUR_OF_DAY</action>
diff --git a/src/test/java/org/apache/commons/lang/RandomStringUtilsTest.java b/src/test/java/org/apache/commons/lang/RandomStringUtilsTest.java
index 1172b1a..4aaa3cf 100644
--- a/src/test/java/org/apache/commons/lang/RandomStringUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang/RandomStringUtilsTest.java
@@ -130,6 +130,17 @@
         assertEquals("aaa", RandomStringUtils.random(3,0,0,false,false,new char[]{'a'},new Random(seed)));
     }
 
+    public void testLANG807() {
+        try {
+            RandomStringUtils.random(3,5,5,false,false);
+            fail("Expected IllegalArgumentException");
+        } catch (IllegalArgumentException ex) { // distinguish from Random#nextInt message
+            final String msg = ex.getMessage();
+            assertTrue("Message (" + msg + ") must contain 'start'", msg.contains("start"));
+            assertTrue("Message (" + msg + ") must contain 'end'", msg.contains("end"));
+        }
+    }
+
     public void testExceptions() {
         final char[] DUMMY = new char[]{'a'}; // valid char array
         try {
