diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb
index f76f1c6e64c356683c3741bea1f937145e9d37c3..791d532b7b1110105789772b3a9f06e7fee01462 100644
--- a/app/controllers/people_controller.rb
+++ b/app/controllers/people_controller.rb
@@ -37,7 +37,6 @@ class PeopleController < ApplicationController
     @aspect  = :person_edit
     @person  = current_user.person
     @profile = @person.profile
-    @photos  = current_user.visible_posts(:person_id => @person.id, :_type => 'Photo').paginate :page => params[:page], :order => 'created_at DESC'
   end
 
   def update
@@ -64,15 +63,17 @@ class PeopleController < ApplicationController
 
   private
   def prep_image_url(params)
-    url = APP_CONFIG[:pod_url].dup
-    url.chop! if APP_CONFIG[:pod_url][-1,1] == '/'
-    if params[:profile][:image_url].empty?
-      params[:profile].delete(:image_url)
-    else
-      if /^http:\/\// =~ params[:profile][:image_url]
-        params[:profile][:image_url] = params[:profile][:image_url]
+    if params[:profile] && params[:profile][:image_url]
+      url = APP_CONFIG[:pod_url].dup
+      url.chop! if APP_CONFIG[:pod_url][-1,1] == '/'
+      if params[:profile][:image_url].empty?
+        params[:profile].delete(:image_url)
       else
-        params[:profile][:image_url] = url + params[:profile][:image_url]
+        if /^http:\/\// =~ params[:profile][:image_url]
+          params[:profile][:image_url] = params[:profile][:image_url]
+        else
+          params[:profile][:image_url] = url + params[:profile][:image_url]
+        end
       end
     end
   end
diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb
index 3216fdf4cf8579e651641276a6f8b0677cf10276..c9671ac7f214f32f6aa6fa5e2f0114b300ebdf4b 100644
--- a/app/controllers/photos_controller.rb
+++ b/app/controllers/photos_controller.rb
@@ -51,6 +51,11 @@ class PhotosController < ApplicationController
 
       @photo = current_user.post(:photo, params[:photo])
 
+      # set image as profile photo
+      if params[:set_profile_image] && !params[:set_profile_image].empty?
+        current_user.update_profile(:image_url=>@photo.url(:thumb_medium))
+      end
+
       respond_to do |format|
         format.json{render(:layout => false , :json => {"success" => true, "data" => @photo}.to_json )}
       end
diff --git a/app/views/people/_profile_photo_upload.html.haml b/app/views/people/_profile_photo_upload.html.haml
new file mode 100644
index 0000000000000000000000000000000000000000..b65672a102f5a50b0ad813858745d4d07c162277
--- /dev/null
+++ b/app/views/people/_profile_photo_upload.html.haml
@@ -0,0 +1,13 @@
+-#   Copyright (c) 2010, Diaspora Inc.  This file is
+-#   licensed under the Affero General Public License version 3 or later.  See
+-#   the COPYRIGHT file.
+
+
+#profile_photo_upload
+  = owner_image_tag
+  = render 'photos/new_photo', :album_id => nil, :aspect_id => 'all', :set_profile_image => true
+
+  %p
+    \...or select one from your already existing
+    = link_to 'photos', person_photos_path(@person)
+    \.
diff --git a/app/views/people/edit.html.haml b/app/views/people/edit.html.haml
index 29e10d7575ccda33233fcccfbdd7e9a36fc04a9b..18d08a542c7e8124799248e056da60dac3b520ef 100644
--- a/app/views/people/edit.html.haml
+++ b/app/views/people/edit.html.haml
@@ -42,26 +42,7 @@
 
       %h4
         Your photo
-        %div#image_picker
-          = profile.hidden_field :image_url, :value => (@profile.image_url if @profile.image_url), :id => 'image_url_field'
-
-          - unless @photos.nil? || @photos.empty?
-            - for photo in @photos
-              - if @profile.image_url && @profile.image_url.include?(photo.url(:thumb_medium))
-                %div.small_photo{:id => photo.url(:thumb_medium), :class=>'selected'}
-                  = check_box_tag 'checked_photo', true, true
-                  = link_to image_tag(photo.url(:thumb_medium)), "#"
-              - else
-                %div.small_photo{:id => photo.url(:thumb_medium)}
-                  = check_box_tag 'checked_photo'
-                  = link_to image_tag(photo.url(:thumb_medium)), "#"
-
-          - else
-            =t('.you_dont_have_any_photos')
-            = link_to t('.albums'), albums_path(:aspect => 'all')
-            =t('.page_to_upload_some')
-
-        =will_paginate @photos
+        = render 'people/profile_photo_upload'
 
     .submit_block
       = link_to t('.cancel'), edit_user_path(current_user)
diff --git a/app/views/photos/_new_photo.haml b/app/views/photos/_new_photo.haml
index a5efe45daeddfe07da2922550cd564e8d544aa24..dd029008e811389cc5c01f53aa6510f871de53b8 100644
--- a/app/views/photos/_new_photo.haml
+++ b/app/views/photos/_new_photo.haml
@@ -6,7 +6,7 @@
   function createUploader(){
     var uploader = new qq.FileUploader({
         element: document.getElementById('file-upload'),
-        params: {'photo' : { 'album_id' : "#{album_id}", 'to' : "#{aspect_id}"}},
+        params: {'photo' : { 'album_id' : "#{album_id}", 'to' : "#{aspect_id}"}, 'set_profile_image' : "#{set_profile_image if defined?(set_profile_image)}"},
         allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'],
         action: "#{photos_path}"
     });
diff --git a/app/views/users/getting_started/_step_1.html.haml b/app/views/users/getting_started/_step_1.html.haml
index 7778a39f8204a1baaa05a176f6a90ef8c7f45de1..1bb45760f94222f89f1bc74f42c961ab4de1476e 100644
--- a/app/views/users/getting_started/_step_1.html.haml
+++ b/app/views/users/getting_started/_step_1.html.haml
@@ -33,26 +33,7 @@
 
     %h4
       Your photo
-    %div#image_picker
-      = profile.hidden_field :image_url, :value => (@profile.image_url if @profile.image_url), :id => 'image_url_field'
-
-      - unless @photos.nil? || @photos.empty?
-        - for photo in @photos
-          - if @profile.image_url && @profile.image_url.include?(photo.url(:thumb_medium))
-            %div.small_photo{:id => photo.url(:thumb_medium), :class=>'selected'}
-              = check_box_tag 'checked_photo', true, true
-              = link_to image_tag(photo.url(:thumb_medium)), "#"
-          - else
-            %div.small_photo{:id => photo.url(:thumb_medium)}
-              = check_box_tag 'checked_photo'
-              = link_to image_tag(photo.url(:thumb_medium)), "#"
-
-      - else
-        =t('.you_dont_have_any_photos')
-        = link_to t('.albums'), albums_path(:aspect => 'all')
-        =t('.page_to_upload_some')
-
-      =will_paginate @photos
+      = render 'people/profile_photo_upload'
 
     = hidden_field_tag :getting_started, @step
 
diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass
index 16b8b4fc33f242dbea2c1676e9233422b467af77..96fb467ed6d162279339b5e52e1172af2f979cce 100644
--- a/public/stylesheets/sass/application.sass
+++ b/public/stylesheets/sass/application.sass
@@ -1377,3 +1377,17 @@ ul.aspects
   :display inline
   :left 600px
   :top 0
+
+#profile_photo_upload
+  :margin
+    :top 5px
+  img
+    :position absolute
+    :left 0
+    :height 100px
+    :width 100px
+    :border-radius 5px
+    :-webkit-box-shadow 0 1px 2px #666
+
+  :padding
+    :left 120px