Index: continuum-release/src/main/java/org/apache/maven/continuum/release/phase/UpdateWorkingCopyPhase.java
===================================================================
--- continuum-release/src/main/java/org/apache/maven/continuum/release/phase/UpdateWorkingCopyPhase.java	(revision 927275)
+++ continuum-release/src/main/java/org/apache/maven/continuum/release/phase/UpdateWorkingCopyPhase.java	(working copy)
@@ -22,6 +22,7 @@
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmVersion;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.manager.NoSuchScmProviderException;
 import org.apache.maven.scm.provider.ScmProvider;
@@ -54,12 +55,12 @@
      * Tool that gets a configured SCM repository from release configuration.
      */
     private ScmRepositoryConfigurator scmRepositoryConfigurator;
-
+        
     private boolean copyUpdated = false;
-
+    
     public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
         throws ReleaseExecutionException, ReleaseFailureException
-    {
+    {        
         ReleaseResult relResult = new ReleaseResult();
 
         logInfo( relResult, "Updating local copy against the scm..." );
@@ -82,11 +83,26 @@
             throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
         }
 
-        UpdateScmResult result;
+        CheckOutScmResult checkOutScmResult = null;
+        UpdateScmResult updateScmResult = null;
+        
+        File workingDirectory = new File( releaseDescriptor.getWorkingDirectory() );
+
         try
         {
-            result = provider.update( repository, new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ) ),
-                                      (ScmVersion) null );
+            if( !workingDirectory.exists() )
+            {
+                workingDirectory.mkdirs();
+            }
+            
+            if( workingDirectory.listFiles().length > 1 )
+            {
+                updateScmResult = provider.update( repository, new ScmFileSet( workingDirectory ), (ScmVersion) null );
+            }
+            else
+            {
+                checkOutScmResult = provider.checkOut( repository, new ScmFileSet( workingDirectory ) );
+            }
         }
         catch ( ScmException e )
         {
@@ -94,13 +110,24 @@
                                                  e );
         }
 
-        if ( !result.isSuccess() )
+        if ( updateScmResult != null )
         {
-            throw new ReleaseScmCommandException( "Unable to update current working copy", result );
+            if( !updateScmResult.isSuccess() )
+            {
+                throw new ReleaseScmCommandException( "Unable to update current working copy", updateScmResult );    
+            }
+            copyUpdated = updateScmResult.getUpdatedFiles().size() > 0;
         }
-
-        copyUpdated = ( result.getUpdatedFiles().size() > 0 );
-
+        else
+        {
+            if( !checkOutScmResult.isSuccess() )
+            {
+                throw new ReleaseScmCommandException( "Unable to checkout project", updateScmResult );
+            }
+            
+            copyUpdated = checkOutScmResult.getCheckedOutFiles().size() > 0; 
+        }
+        
         relResult.setResultCode( ReleaseResult.SUCCESS );
 
         return relResult;
