diff --git a/lib/redmine/version.rb b/lib/redmine/version.rb
index 5934af03eced4307f8cd68af40d457fa5ffa968f..85b7217b721df99e42a51bb25f4577b5a98de8e6 100644
--- a/lib/redmine/version.rb
+++ b/lib/redmine/version.rb
@@ -1,10 +1,34 @@
+require 'rexml/document'
+
 module Redmine
   module VERSION #:nodoc:
     MAJOR = 0
     MINOR = 5
     TINY  = 1
 
-    STRING= [MAJOR, MINOR, TINY].join('.')
+    def self.revision
+      revision = nil
+      entries_path = "#{RAILS_ROOT}/.svn/entries"
+      if File.readable?(entries_path)
+        begin
+          f = File.open(entries_path, 'r')
+          entries = f.read
+          f.close
+     	  if entries.match(%r{^\d+})
+     	    revision = $1.to_i if entries.match(%r{^\d+\s+dir\s+(\d+)\s})
+     	  else
+   	        xml = REXML::Document.new(entries)
+   	        revision = xml.elements['wc-entries'].elements[1].attributes['revision'].to_i
+   	      end
+   	    rescue
+   	      # Could not find the current revision
+   	    end
+ 	  end
+ 	  revision
+    end
+
+    REVISION = self.revision
+    STRING = [MAJOR, MINOR, TINY, REVISION].compact.join('.')
     
     def self.to_s; STRING end    
   end