diff --git a/util/src/main/java/org/jf/util/ClassFileNameHandler.java b/util/src/main/java/org/jf/util/ClassFileNameHandler.java
index 7a748db..124cd02 100644
--- a/util/src/main/java/org/jf/util/ClassFileNameHandler.java
+++ b/util/src/main/java/org/jf/util/ClassFileNameHandler.java
@@ -58,7 +58,6 @@
             throw new RuntimeException("Not a valid dalvik class name");
         }
 
-        String blah;
         int packageElementCount = 1;
         for (int i=1; i<className.length()-1; i++) {
             if (className.charAt(i) == '/') {
@@ -66,6 +65,7 @@
             }
         }
 
+        String packageElement;
         String[] packageElements = new String[packageElementCount];
         int elementIndex = 0;
         int elementStart = 1;
@@ -77,7 +77,13 @@
                     throw new RuntimeException("Not a valid dalvik class name");
                 }
 
-                packageElements[elementIndex++] = className.substring(elementStart, i);
+                packageElement = className.substring(elementStart, i);
+
+                if (modifyWindowsReservedFilenames && isReservedFileName(packageElement)) {
+                    packageElement += "#";
+                }
+
+                packageElements[elementIndex++] = packageElement;
                 elementStart = ++i;
             }
         }
@@ -89,7 +95,13 @@
         if (elementStart >= className.length()-1) {
             throw new RuntimeException("Not a valid dalvik class name");
         }
-        packageElements[elementIndex] = className.substring(elementStart, className.length()-1);
+
+        packageElement = className.substring(elementStart, className.length()-1);
+        if (modifyWindowsReservedFilenames && isReservedFileName(packageElement)) {
+            packageElement += "#";
+        }
+
+        packageElements[elementIndex] = packageElement;
 
         return top.addUniqueChild(packageElements, 0);
     }
@@ -170,15 +182,9 @@
 
             if (pathElementsIndex == pathElements.length - 1) {
                 elementName = pathElements[pathElementsIndex];
-                if (modifyWindowsReservedFilenames && isReservedFileName(elementName)) {
-                    elementName += "#";
-                }
                 elementName += fileExtension;
             } else {
                 elementName = pathElements[pathElementsIndex];
-                if (modifyWindowsReservedFilenames && isReservedFileName(elementName)) {
-                    elementName += "#";
-                }
             }
             elementNameLower = elementName.toLowerCase();
 
