Index: includes/IP.php
===================================================================
--- includes/IP.php	(revision 38663)
+++ includes/IP.php	(working copy)
@@ -426,12 +426,16 @@
 		} elseif ( strpos( $range, '-' ) !== false ) {
 			# Explicit range
 			list( $start, $end ) = array_map( 'trim', explode( '-', $range, 2 ) );
-			$start = self::toUnsigned( $start ); $end = self::toUnsigned( $end );
-			if ( $start > $end ) {
+			if( self::isIPAddress( $start ) && self::isIPAddress( $end ) ) {
+				$start = self::toUnsigned( $start ); $end = self::toUnsigned( $end );
+				if ( $start > $end ) {
+					$start = $end = false;
+				} else {
+					$start = sprintf( '%08X', $start );
+					$end = sprintf( '%08X', $end );
+				}
+			} else {
 				$start = $end = false;
-			} else {
-				$start = sprintf( '%08X', $start );
-				$end = sprintf( '%08X', $end );
 			}
 		} else {
 			# Single IP
