diff --git a/app/controllers/status_messages_controller.rb b/app/controllers/status_messages_controller.rb
index ea1e56394b867f53a8f5cffef911f219baee15cb..7333389b8cc02db3fb3ab41a1df8c50e8b548a0f 100644
--- a/app/controllers/status_messages_controller.rb
+++ b/app/controllers/status_messages_controller.rb
@@ -21,6 +21,9 @@ class StatusMessagesController < ApplicationController
     @status_message = current_user.build_post(:status_message, params[:status_message])
     aspects = current_user.aspects_from_ids(params[:aspect_ids])
 
+    if !photos.empty?
+      @status_message.photos << photos
+    end
     if @status_message.save
       Rails.logger.info("event=create type=status_message chars=#{params[:status_message][:message].length}")
 
@@ -31,14 +34,12 @@ class StatusMessagesController < ApplicationController
       if !photos.empty?
         for photo in photos
           was_pending = photo.pending
-          photo.public = public_flag
-          photo.pending = false
-          @status_message.photos << photo
           if was_pending
             current_user.add_to_streams(photo, aspects)
             current_user.dispatch_post(photo)
           end
         end
+        photos.update_all(:pending => false, :public => public_flag)
       end
 
       respond_to do |format|
@@ -47,6 +48,9 @@ class StatusMessagesController < ApplicationController
         format.mobile{ redirect_to :back}
       end
     else
+      if !photos.empty?
+        photos.update_all(:status_message_id => nil)
+      end
       respond_to do |format|
         format.js { render :json =>{:errors =>   @status_message.errors.full_messages}, :status => 406 }
         format.html {redirect_to :back}
diff --git a/spec/controllers/status_messages_controller_spec.rb b/spec/controllers/status_messages_controller_spec.rb
index 1299fcf7dd600f0515842dd7b71c96c524039a10..d51fb2ef318cb58854554d436c1ce7e504c5de96 100644
--- a/spec/controllers/status_messages_controller_spec.rb
+++ b/spec/controllers/status_messages_controller_spec.rb
@@ -127,6 +127,11 @@ describe StatusMessagesController do
         @hash = status_message_hash
         @hash[:photos] = [@photo1.id.to_s, @photo2.id.to_s]
       end
+      it "will post a photo without text" do
+        @hash.delete :message
+        post :create, @hash
+        response.should be_redirect
+      end
       it "dispatches all referenced photos" do
         @user1.should_receive(:dispatch_post).exactly(3).times
         post :create, @hash
diff --git a/spec/models/status_message_spec.rb b/spec/models/status_message_spec.rb
index dee3fd9d9b9c091cc678520f9d3b1a33f0d0890e..7beb656e0685694536ae2d74324ad0d1f24a5b0f 100644
--- a/spec/models/status_message_spec.rb
+++ b/spec/models/status_message_spec.rb
@@ -43,7 +43,7 @@ describe StatusMessage do
     photo.save!
 
     n.photos << photo
-    n.valid?
+    n.valid?.should be_true
     n.errors.full_messages.should == []
   end