diff --git a/examples/sendtr.c b/examples/sendtr.c
index 03f4f0c..a608d15 100644
--- a/examples/sendtr.c
+++ b/examples/sendtr.c
@@ -186,6 +186,7 @@
 {
   char *filename, *parent;
   char artist[80], albumartist[80], title[80], genre[80], album[80], composer[80];
+  char *to_path_copy = NULL;
   char num[80];
   uint64_t filesize;
   uint32_t parent_id = 0;
@@ -196,22 +197,28 @@
 
   printf("Sending track %s to %s\n", from_path, to_path);
 
-  parent = dirname(strdup(to_path));
-  filename = basename(strdup(to_path));
+  to_path_copy = strdup(to_path);
+  parent = dirname(to_path_copy);
   parent_id = parse_path (parent,files,folders);
   if (parent_id == -1) {
+    free (to_path_copy);
     printf("Parent folder could not be found, skipping\n");
     return 1;
   }
+  strcpy (to_path_copy,to_path);
+  filename = basename(to_path_copy);
 
   if (stat(from_path, &sb) == -1) {
     fprintf(stderr, "%s: ", from_path);
     perror("stat");
+    free (to_path_copy);
     return 1;
   }
 
-  if (!S_ISREG(sb.st_mode))
+  if (!S_ISREG(sb.st_mode)) {
+    free (to_path_copy);
     return 0;
+  }
 
   filesize = sb.st_size;
 
@@ -220,6 +227,7 @@
   if (!LIBMTP_FILETYPE_IS_TRACK(trackmeta->filetype)) {
     printf("Not a valid track codec: \"%s\"\n", LIBMTP_Get_Filetype_Description(trackmeta->filetype));
     LIBMTP_destroy_track_t(trackmeta);
+    free (to_path_copy);
     return 1;
   }
 
@@ -374,6 +382,7 @@
 
   LIBMTP_destroy_album_t(albuminfo);
   LIBMTP_destroy_track_t(trackmeta);
+  free (to_path_copy);
 
   return ret;
 }
@@ -397,24 +406,31 @@
   while ( (opt = getopt(argc, argv, "qD:t:a:A:w:l:c:g:n:d:y:s:")) != -1 ) {
     switch (opt) {
     case 't':
+      free (ptitle);
       ptitle = strdup(optarg);
       break;
     case 'a':
+      free (partist);
       partist = strdup(optarg);
       break;
     case 'A':
+      free (palbumartist);
       palbumartist = strdup(optarg);
       break;
     case 'w':
+      free (pcomposer);
       pcomposer = strdup(optarg);
       break;
     case 'l':
+      free (palbum);
       palbum = strdup(optarg);
       break;
     case 'c':
+      free (pcodec);
       pcodec = strdup(optarg); // FIXME: DSM check for MP3, WAV or WMA
       break;
     case 'g':
+      free (pgenre);
       pgenre = strdup(optarg);
       break;
     case 'n':
