diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 407b85330cd534412043939258b4a866ef63c7f9..df4519f652936898ea725da2d3a121219efd485c 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -5,6 +5,7 @@
 class UsersController < ApplicationController
   require File.expand_path('../../../lib/diaspora/ostatus_builder', __FILE__)
   require File.expand_path('../../../lib/diaspora/exporter', __FILE__)
+  require File.expand_path('../../../lib/collect_user_photos', __FILE__)
 
   before_filter :authenticate_user!, :except => [:new, :create, :public]
 
@@ -62,6 +63,11 @@ class UsersController < ApplicationController
     send_data exporter.execute(current_user), :filename => "#{current_user.username}_diaspora_data.xml", :type => :xml
   end
 
+  def export_photos
+    tar_path = PhotoMover::move_photos(current_user)
+    send_data( File.open(tar_path).read, :filename => "#{current_user.id}.tar" )
+  end
+
   private
   def prep_image_url(params)
     url = APP_CONFIG[:pod_url].chop if APP_CONFIG[:pod_url][-1,1] == '/'
diff --git a/app/views/users/edit.html.haml b/app/views/users/edit.html.haml
index cd8deb068c27c740f71e32246c36ebcdc9875d43..78076e7896bce0ad7ce0058a54f0421694ecadc8 100644
--- a/app/views/users/edit.html.haml
+++ b/app/views/users/edit.html.haml
@@ -26,7 +26,8 @@
   = render 'users/profile'
 
 #account.settings_pane
-  = link_to "download my stuff", users_export_path, :class => "button"
+  = link_to "download my xml", users_export_path, :class => "button"
+  = link_to "download my photos", users_export_photos_path, :class => "button"
 
 #services.settings_pane
   = render 'users/services'
diff --git a/config/routes.rb b/config/routes.rb
index 802ebd260dbe5e139030ba5d1d234b1106f3e805..a5167044999efd7174a7c2eb61e0e7ead06e5766 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -15,6 +15,7 @@ Diaspora::Application.routes.draw do
   # added public route to user
   match 'public/:username', :to => 'users#public'
   match 'users/export',     :to => 'users#export'
+  match 'users/export_photos',     :to => 'users#export_photos'
   resources :users,         :except => [:create, :new, :show]
 
   match 'aspects/move_friends', :to => 'aspects#move_friends', :as => 'move_friends'
diff --git a/lib/collect_user_photos.rb b/lib/collect_user_photos.rb
new file mode 100644
index 0000000000000000000000000000000000000000..f379e9ff1d4a088abeb2d6bd8fcf18792201f1cf
--- /dev/null
+++ b/lib/collect_user_photos.rb
@@ -0,0 +1,30 @@
+module PhotoMover
+
+  def self.move_photos(user)
+
+    Dir.chdir Rails.root
+    temp_dir = "tmp/exports/#{user.id}"
+    FileUtils::mkdir_p temp_dir
+    Dir.chdir 'tmp/exports'
+
+    albums = user.visible_posts(:person_id => user.person.id, :_type => 'Album')
+    
+    albums.each do |album|
+      album_dir = "#{user.id}/#{album.name}"
+      `mkdir #{album_dir}`
+      
+      album.photos.each do |photo|
+        current_photo_location = "#{Rails.root}/public/uploads/images/#{photo.image_filename}"
+        new_photo_location = "#{album_dir}/#{photo.image_filename}"
+
+        `cp #{current_photo_location} #{new_photo_location}`
+      end
+    end
+
+    `tar cf #{user.id}.tar #{user.id}`
+    `rm -r #{user.id}`
+
+    "#{Rails.root}/#{temp_dir}.tar"
+  end
+
+end