fix <!...!> parsing; added verbose option; don't lowercase entityrefs
diff --git a/Lib/sgmllib.py b/Lib/sgmllib.py
index 0169ea3..fc023eb 100644
--- a/Lib/sgmllib.py
+++ b/Lib/sgmllib.py
@@ -40,7 +40,8 @@
 class SGMLParser:
 
 	# Interface -- initialize and reset this instance
-	def __init__(self):
+	def __init__(self, verbose=0):
+		self.verbose = verbose
 		self.reset()
 
 	# Interface -- reset this instance.  Loses all unprocessed data
@@ -141,7 +142,8 @@
 			k = incomplete.match(rawdata, i)
 			if k < 0: raise RuntimeError, 'no incomplete match ??'
 			j = i+k
-			if j == n: break # Really incomplete
+			if j == n or rawdata[i:i+2] == '<!':
+				break # Really incomplete
 			self.handle_data(rawdata[i:j])
 			i = j
 		# end while
@@ -234,8 +236,9 @@
 
 	# Example -- report an unbalanced </...> tag.
 	def report_unbalanced(self, tag):
-		print '*** Unbalanced </' + tag + '>'
-		print '*** Stack:', self.stack
+		if self.verbose:
+			print '*** Unbalanced </' + tag + '>'
+			print '*** Stack:', self.stack
 
 	# Example -- handle character reference, no need to override
 	def handle_charref(self, name):
@@ -256,7 +259,6 @@
 	# Example -- handle entity reference, no need to override
 	def handle_entityref(self, name):
 		table = self.entitydefs
-		name = string.lower(name)
 		if table.has_key(name):
 			self.handle_data(table[name])
 		else: