diff --git a/app/controllers/application.rb b/app/controllers/application.rb
index 7cbd563..37dcdf8 100644
--- a/app/controllers/application.rb
+++ b/app/controllers/application.rb
@@ -206,7 +206,7 @@ class ApplicationController < ActionController::Base
     if attachments && attachments.is_a?(Hash)
       attachments.each_value do |attachment|
         file = attachment['file']
-        next unless file && file.size > 0
+        next unless file && (file.size > 0 || File.size(file) > 0)
         a = Attachment.create(:container => obj, 
                               :file => file,
                               :description => attachment['description'].to_s.strip,
diff --git a/app/models/attachment.rb b/app/models/attachment.rb
index fe1d6af..1719281 100644
--- a/app/models/attachment.rb
+++ b/app/models/attachment.rb
@@ -54,11 +54,13 @@ class Attachment < ActiveRecord::Base
   def file=(incoming_file)
     unless incoming_file.nil?
       @temp_file = incoming_file
-      if @temp_file.size > 0
+      if @temp_file.size > 0 || File.size(@temp_file) > 0
         self.filename = sanitize_filename(@temp_file.original_filename)
         self.disk_filename = Attachment.disk_filename(filename)
         self.content_type = @temp_file.content_type.to_s.chomp
-        self.filesize = @temp_file.size
+        self.filesize = (@temp_file.size > 0)? @temp_file.size : File.size(@temp_file)
+      else
+        logger.debug("temp_file size is lower or equal to 0")
       end
     end
   end
@@ -70,7 +72,7 @@ class Attachment < ActiveRecord::Base
   # Copies the temporary file to its final location
   # and computes its MD5 hash
   def before_save
-    if @temp_file && (@temp_file.size > 0)
+    if @temp_file && (@temp_file.size > 0 || File.size(@temp_file) > 0)
       logger.debug("saving '#{self.diskfile}'")
       md5 = Digest::MD5.new
       File.open(diskfile, "wb") do |f| 
