diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java
index 74d04d9..1d76f9a 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java
@@ -152,7 +152,7 @@
 	 * @param identifier
 	 */
 	private void addToCommitQueue(final FileIdentifier identifier) {
-		for (final FileIdentifier f : uploadQueue.getWaitingUploads()) {
+		for (final FileIdentifier f : uploadQueue.getPendingUploads()) {
 			if (f.getIdentifier().equals(identifier.getIdentifier())) {
 				return;
 			}
@@ -170,7 +170,7 @@
 	 */
 	public void uploadQueuedFiles(IProgressMonitor progress) {
 		try {
-			final List<FileIdentifier> uploads = uploadQueue.getWaitingUploads();
+			final List<FileIdentifier> uploads = uploadQueue.getPendingUploads();
 			while (!uploads.isEmpty()) {
 				final FileIdentifier fi = uploads.get(0);
 
@@ -313,7 +313,7 @@
 		 * the element. Equals is not well-defined for EObjects, so we cannot
 		 * use it here.
 		 */
-		for (final FileIdentifier upload : uploadQueue.getWaitingUploads()) {
+		for (final FileIdentifier upload : uploadQueue.getPendingUploads()) {
 			// This is our equals: Compare the strings!
 			if (upload.getIdentifier().equals(fileId.getIdentifier())) {
 				return i;
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/ProjectSpaceUploadQueue.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/ProjectSpaceUploadQueue.java
index 7263be4..002fc4a 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/ProjectSpaceUploadQueue.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/ProjectSpaceUploadQueue.java
@@ -35,9 +35,9 @@
 	 *
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.emfstore.internal.client.model.filetransfer.util.UploadQueue#getWaitingUploads()
+	 * @see org.eclipse.emf.emfstore.internal.client.model.filetransfer.util.UploadQueue#getPendingUploads()
 	 */
-	public List<FileIdentifier> getWaitingUploads() {
+	public List<FileIdentifier> getPendingUploads() {
 		return projectSpace.getWaitingUploads();
 	}
 
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/SimpleUploadQueue.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/SimpleUploadQueue.java
index c467be0..b1eb6a9 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/SimpleUploadQueue.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/SimpleUploadQueue.java
@@ -26,9 +26,9 @@
 	/**
 	 * {@inheritDoc}
 	 *
-	 * @see org.eclipse.emf.emfstore.internal.client.model.filetransfer.util.UploadQueue#getWaitingUploads()
+	 * @see org.eclipse.emf.emfstore.internal.client.model.filetransfer.util.UploadQueue#getPendingUploads()
 	 */
-	public List<FileIdentifier> getWaitingUploads() {
+	public List<FileIdentifier> getPendingUploads() {
 		return fileIdentifiers;
 	}
 
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/UploadQueue.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/UploadQueue.java
index ca883f3..3460bab 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/UploadQueue.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/util/UploadQueue.java
@@ -23,7 +23,7 @@
 	/**
 	 * @return the {@link FileIdentifier files} waiting to be uploaded
 	 */
-	List<FileIdentifier> getWaitingUploads();
+	List<FileIdentifier> getPendingUploads();
 
 	/**
 	 * Enqueues a {@link FileIdentifier file} for upload.
