diff -urp drush-6.x-1.0/drush_pm/drush_pm.module drush/drush_pm/drush_pm.module
--- drush-6.x-1.0/drush_pm/drush_pm.module	2008-06-19 19:48:10.000000000 +0200
+++ drush/drush_pm/drush_pm.module	2008-06-23 19:33:31.000000000 +0200
@@ -278,7 +278,12 @@ function drush_pm_update() {  
     if (!count($skip_backup)) {
       $backup_dir = DRUSH_DRUPAL_ROOT. '/backup';
       drush_op('mkdir', $backup_dir, 0777);
-      $backup_dir .= '/modules';
+      if ($project['project_type'] == 'module') {
+        $backup_dir .= '/modules';
+      }
+      else if ($project['project_type'] == 'theme') {
+        $backup_dir .= '/themes';
+      }
       drush_op('mkdir', $backup_dir, 0777);
       $backup_dir .= "/$date";
       drush_op('mkdir', $backup_dir, 0777);
@@ -458,7 +463,7 @@ function drush_pm_get_project_path($proj
     if (!isset($info['path'])  && $project != 'drupal') {
       // looks for an enabled module.
       foreach ($info['includes'] as $module => $name) {
-        if ($path = drupal_get_path('module', $module)) {
+        if ($path = drupal_get_path($info['project_type'], $module)) {
           continue;
         }
       }
