diff --git a/utilities/imp2ld.cpp b/utilities/imp2ld.cpp
index a3468cf..8174e74 100644
--- a/utilities/imp2ld.cpp
+++ b/utilities/imp2ld.cpp
@@ -201,6 +201,7 @@ int main(int argc, char **argv) {
 					SWLD::strongsPad(buf);
 					if(strcmp(buf, *key))
 						std::cout << "Warning: entry " << *key << " is a number but not padded correctly. ";
+					delete buf;
 				}
 
 				mod->setEntry(entbuffer.c_str(), entbuffer.size());
@@ -231,13 +232,15 @@ int main(int argc, char **argv) {
 		std::cout << keybuffer << std::endl;
 		*key = keybuffer.c_str();
 
-				if(paddingCheck) {
-					char *buf = new char [ strlen(*key) + 6 ];
-					strcpy(buf, *key);
-					SWLD::strongsPad(buf);
-					if(strcmp(buf, *key))
-						std::cout << "Warning: entry " << *key << " is a number but not padded correctly. ";
-				}
+		if(paddingCheck) {
+			char *buf = new char [ strlen(*key) + 6 ];
+			strcpy(buf, *key);
+			SWLD::strongsPad(buf);
+			if(strcmp(buf, *key))
+				std::cout << "Warning: entry " << *key << " is a number but not padded correctly. ";
+			delete buf;
+		}
+		
 		mod->setEntry(entbuffer.c_str(), entbuffer.size());
 		for (i = 0; i < links; i++) {
 			std::cout << "Linking: " << linkbuffer[i] << std::endl;