diff --git a/src/sourcery.cpp b/src/sourcery.cpp
index f7f82afe..ca6d966e 100644
--- a/src/sourcery.cpp
+++ b/src/sourcery.cpp
@@ -9,37 +9,41 @@ int main(int argc, char* argv[]){
     std::cerr << "Usage: " << argv[0] << " <inputFile> <variableName> <outputFile>" << std::endl;
   }
   std::ofstream tmp(argv[3]);
+  //begin the first line
   tmp << "const char *" << argv[2] << " = " << std::endl << "  \"";
-  int i = 0;
-  int total = 0;
+  uint32_t i = 0; //Current line byte counter
+  uint32_t total = 0; //Finished lines so far byte counter
   std::ifstream inFile(argv[1]);
   while (inFile.good()){
     unsigned char thisChar = inFile.get();
     if (!inFile.good()){break;}
     switch (thisChar){
       //Filter special characters.
-      case '\n': tmp << "\\n"; i += 2; total--; break;
-      case '\r': tmp << "\\r"; i += 2; total--; break;
-      case '\t': tmp << "\\t"; i += 2; total--; break;
-      case '\\': tmp << "\\\\"; i += 2; total --; break;
-      case '\"': tmp << "\\\""; i += 2; total --; break;
+      case '\n': tmp << "\\n";  break;
+      case '\r': tmp << "\\r";  break;
+      case '\t': tmp << "\\t";  break;
+      case '\\': tmp << "\\\\"; break;
+      case '\"': tmp << "\\\""; break;
       default:
         if (thisChar < 32 || thisChar > 126){
           //Convert to octal.
           tmp << '\\' << std::oct << std::setw(3) << std::setfill('0') << (unsigned int)thisChar << std::dec;
-          i += 4;
         }else{
           tmp << thisChar;
-          i ++;
         }
     }
+    ++i;
+    // We print 80 bytes per line, regardless of special characters
+    // (Mostly because calculating this correctly would double the lines of code for this utility -_-)
     if (i >= 80){
       tmp << "\" \\" << std::endl << "  \"";
       total += i;
       i = 0;
     }
   }
-  tmp << "\";" << std::endl << "unsigned int " << argv[2] << "_len = " << i + total << ";" << std::endl;
+  //end the last line, plus length variable
+  tmp << "\";" << std::endl << "uint32_t " << argv[2] << "_len = " << i + total << ";" << std::endl;
   tmp.close();
   return 0;
 }
+