diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 9b41b1fc9b215d11e9d8a566fd4e1abf8ce27b45..0ee354dfbc87e6f117384df434e3c1ab4b559b63 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -4,6 +4,7 @@
 
 class UsersController < ApplicationController
   require File.expand_path('../../../lib/diaspora/ostatus_builder', __FILE__)
+  require File.expand_path('../../../lib/diaspora/exporter', __FILE__)
 
   before_filter :authenticate_user!, :except => [:new, :create, :public]
 
@@ -56,6 +57,11 @@ class UsersController < ApplicationController
     end
   end
 
+  def export
+    exporter = Diaspora::Exporter.new(Diaspora::Exporters::XML)
+    render :xml => exporter.execute(current_user) 
+  end
+
   private
   def prep_image_url(params)
     url = APP_CONFIG[:pod_url].chop if APP_CONFIG[:pod_url][-1,1] == '/'
diff --git a/config/routes.rb b/config/routes.rb
index bcb237671f9cee454155ba3e2fe3ce4aabec74bd..6f9f529db43e75481b7a9e414fcc2a990441082e 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -14,7 +14,8 @@ Diaspora::Application.routes.draw do
                                       :password      => "devise/passwords"}
   # added public route to user
   match 'public/:username', :to => 'users#public'
-  resources :users,               :except => [:create, :new, :show]
+  match 'users/export',     :to => 'users#export'
+  resources :users,         :except => [:create, :new, :show]
 
   match 'aspects/move_friends', :to => 'aspects#move_friends', :as => 'move_friends'
   match 'aspects/move_friend',  :to => 'aspects#move_friend', :as => 'move_friend'