--- HostRange.pm.org	2007-08-09 23:00:10.000000000 +0200
+++ HostRange.pm	2007-08-10 21:12:23.000000000 +0200
@@ -109,8 +109,8 @@
 sub expand_range {
 	my ($expanded_hosts, $node) = @_;
 	my ($start_root, $start_domain, $start_num, $end_root, $end_domain, $end_num);
-	if ($node =~ /-/) {
-		my ($front, $end) = split('-', $node, 2);
+	if ($node =~ /(?<!\\)-/) {
+		my ($front, $end) = split(/(?<!\\)-/, $node, 2);
 
 		# IP range.
 		if ((my $ip_start = ip2int($front)) && (my $ip_end = ip2int($end))) {
@@ -128,18 +128,31 @@
 		if (!defined($end_domain)) {
 			$end_domain = '';
 		}
+
+
 		if (!defined($start_num) || !defined($end_num)
 			|| ($start_num > $end_num)
 			|| ($end_root ne $start_root)
 			|| ($end_domain ne $start_domain)) {
+				#Strip escape characters
+				$node =~ s/\\-/-/g;
+
 				$$expanded_hosts{$node}++;
 			return;
 		}
 	} else {
 		# Single host.
+
+		#Strip escape characters
+		$node =~ s/\\-/-/g;
+
 		$$expanded_hosts{$node}++;
 		return;
 	}
+
+	#Strip escape characters
+	$start_root =~ s/\\-/-/g;
+
 	foreach my $suffix ($start_num .. $end_num) {
 		my $zeros = (length($start_num) - length($suffix));
 		my $prefix = '0' x $zeros;
