diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 76ca3c8..2a3d670 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,5 +1,22 @@
 2009-09-02  David Kilzer  <ddkilzer@apple.com>
 
+        Moved svn 1.6 version check into VCSUtils::isSVNVersion16OrNewer()
+
+        Reviewed by Eric Seidel.
+
+        * Scripts/VCSUtils.pm:
+        (@EXPORT): Added &isSVNVersion16OrNewer.
+        (svnVersion): Added.  Internal method that gets the SVN version
+        and caches it.
+        (isSVNVersion16OrNewer): Added.  Method that does the SVN 1.6
+        version check.
+        * Scripts/prepare-ChangeLog: Switched to use new
+        isSVNVersion16OrNewer() method.
+        * Scripts/resolve-ChangeLogs: Ditto.
+        * Scripts/svn-create-patch: Ditto.
+
+2009-09-02  David Kilzer  <ddkilzer@apple.com>
+
         Clean up VCSUtils.pm
 
         Reviewed by Eric Seidel.
diff --git a/WebKitTools/Scripts/VCSUtils.pm b/WebKitTools/Scripts/VCSUtils.pm
index a8f0314..5223c92 100644
--- a/WebKitTools/Scripts/VCSUtils.pm
+++ b/WebKitTools/Scripts/VCSUtils.pm
@@ -49,6 +49,7 @@
         &isGitDirectory
         &isSVN
         &isSVNDirectory
+        &isSVNVersion16OrNewer
         &makeFilePathRelative
         &pathRelativeToSVNRepositoryRootForPath
         &svnRevisionForDirectory
@@ -64,6 +65,7 @@
 my $isGit;
 my $isGitBranchBuild;
 my $isSVN;
+my $svnVersion;
 
 sub isGitDirectory($)
 {
@@ -121,6 +123,24 @@
     return $isSVN;
 }
 
+sub svnVersion()
+{
+    return $svnVersion if defined $svnVersion;
+
+    if (!isSVN()) {
+        $svnVersion = 0;
+    } else {
+        chomp($svnVersion = `svn --version --quiet`);
+    }
+    return $svnVersion;
+}
+
+sub isSVNVersion16OrNewer()
+{
+    my $version = svnVersion();
+    return eval "v$version" ge v1.6;
+}
+
 sub chdirReturningRelativePath($)
 {
     my ($directory) = @_;
diff --git a/WebKitTools/Scripts/prepare-ChangeLog b/WebKitTools/Scripts/prepare-ChangeLog
index 19842bc..1f79081 100755
--- a/WebKitTools/Scripts/prepare-ChangeLog
+++ b/WebKitTools/Scripts/prepare-ChangeLog
@@ -151,8 +151,6 @@
 my $SVN = "svn";
 my $GIT = "git";
 
-my $svnVersion = `svn --version --quiet` if $isSVN;
-
 # Find the list of modified files
 my @changed_files;
 my $changed_files_string;
@@ -1438,7 +1436,7 @@
 
         if ($isSVN) {
             my $matches;
-            if (eval "v$svnVersion" ge v1.6) {
+            if (isSVNVersion16OrNewer()) {
                 $matches = /^([ ACDMR])([ CM]).{5} (.+?)[\r\n]*$/;
                 $status = $1;
                 $propertyStatus = $2;
diff --git a/WebKitTools/Scripts/resolve-ChangeLogs b/WebKitTools/Scripts/resolve-ChangeLogs
index 0d136cd..db497f9 100755
--- a/WebKitTools/Scripts/resolve-ChangeLogs
+++ b/WebKitTools/Scripts/resolve-ChangeLogs
@@ -64,8 +64,6 @@
 my $SVN = "svn";
 my $GIT = "git";
 
-my $svnVersion = `svn --version --quiet` if $isSVN;
-
 my $fixMerged;
 my $gitRebaseContinue = 0;
 my $printWarnings = 1;
@@ -256,7 +254,7 @@
         if ($isSVN) {
             my $matches;
             my $file;
-            if (eval "v$svnVersion" ge v1.6) {
+            if (isSVNVersion16OrNewer()) {
                 $matches = /^([C]).{6} (.+?)[\r\n]*$/;
                 $file = $2;
             } else {
diff --git a/WebKitTools/Scripts/svn-create-patch b/WebKitTools/Scripts/svn-create-patch
index 6e61164..e91f00d 100755
--- a/WebKitTools/Scripts/svn-create-patch
+++ b/WebKitTools/Scripts/svn-create-patch
@@ -77,7 +77,6 @@
 $ENV{'LC_ALL'} = 'C';
 
 my $showHelp;
-my $svnVersion = `svn --version --quiet`;
 my $devNull = File::Spec->devnull();
 
 my $result = GetOptions(
@@ -292,7 +291,7 @@
         $line =~ s/[\r\n]+$//g;
         my $stat;
         my $path;
-        if (eval "v$svnVersion" ge v1.6) { 
+        if (isSVNVersion16OrNewer()) {
             $stat = substr($line, 0, 8);
             $path = substr($line, 8);
         } else {
