diff --git a/src/Parse.js b/src/Parse.js
index 3aeb3fe..5a3ba96 100644
--- a/src/Parse.js
+++ b/src/Parse.js
@@ -114,20 +114,16 @@ _html2canvas.Parse = function ( images, options ) {
     switch(transform){
       case "lowercase":
         return text.toLowerCase();
-
       case "capitalize":
         return text.replace( /(^|\s|:|-|\(|\))([a-z])/g , function (m, p1, p2) {
           if (m.length > 0) {
             return p1 + p2.toUpperCase();
           }
         } );
-
       case "uppercase":
         return text.toUpperCase();
-
       default:
         return text;
-
     }
   }
 
@@ -381,63 +377,49 @@ _html2canvas.Parse = function ( images, options ) {
 
   }
 
+  function listItemText(element, type) {
+    var currentIndex = elementIndex(element),
+    text;
+    switch(type){
+      case "decimal":
+        text = currentIndex;
+        break;
+      case "decimal-leading-zero":
+        text = (currentIndex.toString().length === 1) ? currentIndex = "0" + currentIndex.toString() : currentIndex.toString();
+        break;
+      case "upper-roman":
+        text = _html2canvas.Generate.ListRoman( currentIndex );
+        break;
+      case "lower-roman":
+        text = _html2canvas.Generate.ListRoman( currentIndex ).toLowerCase();
+        break;
+      case "lower-alpha":
+        text = _html2canvas.Generate.ListAlpha( currentIndex ).toLowerCase();
+        break;
+      case "upper-alpha":
+        text = _html2canvas.Generate.ListAlpha( currentIndex );
+        break;
+    }
+
+    text += ". ";
+    return text;
+  }
+
   function renderListItem(element, stack, elBounds) {
     var position = getCSS(element, "listStylePosition"),
     x,
     y,
-    type = getCSS(element, "listStyleType"),
-    currentIndex,
     text,
-    listBounds,
-    bold = getCSS(element, "fontWeight");
+    type = getCSS(element, "listStyleType"),
+    listBounds;
 
     if (/^(decimal|decimal-leading-zero|upper-alpha|upper-latin|upper-roman|lower-alpha|lower-greek|lower-latin|lower-roman)$/i.test(type)) {
-
-      currentIndex = elementIndex( element );
-
-      switch(type){
-        case "decimal":
-          text = currentIndex;
-          break;
-        case "decimal-leading-zero":
-          if (currentIndex.toString().length === 1){
-            text = currentIndex = "0" + currentIndex.toString();
-          }else{
-            text = currentIndex.toString();
-          }
-          break;
-        case "upper-roman":
-          text = _html2canvas.Generate.ListRoman( currentIndex );
-          break;
-        case "lower-roman":
-          text = _html2canvas.Generate.ListRoman( currentIndex ).toLowerCase();
-          break;
-        case "lower-alpha":
-          text = _html2canvas.Generate.ListAlpha( currentIndex ).toLowerCase();
-          break;
-        case "upper-alpha":
-          text = _html2canvas.Generate.ListAlpha( currentIndex );
-          break;
-      }
-
-      text += ". ";
+      text = listItemText(element, type);
       listBounds = listPosition(element, text);
+      setTextVariables(ctx, element, "none", getCSS(element, "color"));
 
-      switch(bold){
-        case 401:
-          bold = "bold";
-          break;
-        case 400:
-          bold = "normal";
-          break;
-      }
-
-      ctx.setVariable( "fillStyle", getCSS(element, "color") );
-      ctx.setVariable( "font", getCSS(element, "fontVariant") + " " + bold + " " + getCSS(element, "fontStyle") + " " + getCSS(element, "fontSize") + " " + getCSS(element, "fontFamily") );
-
-      if ( position === "inside" ) {
+      if (position === "inside") {
         ctx.setVariable("textAlign", "left");
-        //   this.setFont(stack.ctx, element, false);
         x = elBounds.left;
       } else {
         return;