diff --git a/globals.pl b/globals.pl
index 1654738e592b818a2a3c8f478b283ed543cddffc..09c9934bf6555baa9be5811404c41dca062ef693 100644
--- a/globals.pl
+++ b/globals.pl
@@ -21,6 +21,7 @@
 #                 Dan Mosedale <dmose@mozilla.org>
 #                 Jake <jake@acutex.net>
 #                 Bradley Baetz <bbaetz@cs.mcgill.ca>
+#                 Christopher Aillon <christopher@aillon.com>
 
 # Contains some global variables and routines used throughout bugzilla.
 
@@ -1502,6 +1503,22 @@ sub PerformSubsts {
     return $str;
 }
 
+# Min and max routines.
+sub min {
+    my $min = shift(@_);
+    foreach my $val (@_) {
+        $min = $val if $val < $min;
+    }
+    return $min;
+}
+
+sub max {
+    my $max = shift(@_);
+    foreach my $val (@_) {
+        $max = $val if $val > $max;
+    }
+    return $max;
+}
 
 # Trim whitespace from front and back.
 
diff --git a/showvotes.cgi b/showvotes.cgi
index bb87848f033ec91c8872198de55bdccda6e0c4cd..a6928bf84f2caf3fd1aadcbd95f07396226caca3 100755
--- a/showvotes.cgi
+++ b/showvotes.cgi
@@ -20,6 +20,7 @@
 #
 # Contributor(s): Terry Weissman <terry@mozilla.org>
 #                 Stephan Niemz  <st.n@gmx.net>
+#                 Christopher Aillon <christopher@aillon.com>
 
 use diagnostics;
 use strict;
@@ -138,13 +139,14 @@ if (defined $::FORM{'bug_id'}) {
             $summary = html_quote($summary);
             $sum += $count;
             if ($canedit) {
-                my $min = $maxvotesperbug{$product}; # minimum of these two
-                $min = $::prodmaxvotes{$product} if $::prodmaxvotes{$product} < $min;
-                if( $min < 2 ) { # checkbox
-                    my $checked = $count ? ' checked' : '';
+                my $min = min($::prodmaxvotes{$product}, $maxvotesperbug{$product});
+                if ($min < 2) { # checkbox
+                    my $checked = $count ? ' checked="checked"' : '';
                     $count = qq{<input type="checkbox" name="$id" value="1"$checked>};
-                }else { # normal input
-                    $count = qq{<input name="$id" value="$count" size="5">};
+                }
+                else { # text input
+                    my $maxlength = length $min;
+                    $count = qq{<input name="$id" value="$count" size="$maxlength" maxlength="$maxlength">};
                 }
             }
             print qq{