diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/HttpAuthMethod.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/HttpAuthMethod.java
index 47cbf69..3594ea9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/HttpAuthMethod.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/HttpAuthMethod.java
@@ -85,24 +85,44 @@
 			public HttpAuthMethod method(String hdr) {
 				return None.INSTANCE;
 			}
+
+			@Override
+			public String getSchemeName() {
+				return "None"; //$NON-NLS-1$
+			}
 		},
 		BASIC {
 			@Override
 			public HttpAuthMethod method(String hdr) {
 				return new Basic();
 			}
+
+			@Override
+			public String getSchemeName() {
+				return "Basic"; //$NON-NLS-1$
+			}
 		},
 		DIGEST {
 			@Override
 			public HttpAuthMethod method(String hdr) {
 				return new Digest(hdr);
 			}
+
+			@Override
+			public String getSchemeName() {
+				return "Digest"; //$NON-NLS-1$
+			}
 		},
 		NEGOTIATE {
 			@Override
 			public HttpAuthMethod method(String hdr) {
 				return new Negotiate(hdr);
 			}
+
+			@Override
+			public String getSchemeName() {
+				return "Negotiate"; //$NON-NLS-1$
+			}
 		};
 		/**
 		 * Creates a HttpAuthMethod instance configured with the provided HTTP
@@ -112,6 +132,13 @@
 		 * @return a configured HttpAuthMethod instance
 		 */
 		public abstract HttpAuthMethod method(String hdr);
+
+		/**
+		 * @return the name of the authentication scheme in the form to be used
+		 *         in HTTP authentication headers as specified in RFC2617 and
+		 *         RFC4559
+		 */
+		public abstract String getSchemeName();
 	}
 
 	static final String EMPTY_STRING = ""; //$NON-NLS-1$
@@ -270,7 +297,7 @@
 		void configureRequest(final HttpConnection conn) throws IOException {
 			String ident = user + ":" + pass; //$NON-NLS-1$
 			String enc = Base64.encodeBytes(ident.getBytes("UTF-8")); //$NON-NLS-1$
-			conn.setRequestProperty(HDR_AUTHORIZATION, type.name()
+			conn.setRequestProperty(HDR_AUTHORIZATION, type.getSchemeName()
 					+ " " + enc); //$NON-NLS-1$
 		}
 	}
@@ -357,7 +384,7 @@
 				v.append(e.getValue());
 				v.append('"');
 			}
-			conn.setRequestProperty(HDR_AUTHORIZATION, type.name()
+			conn.setRequestProperty(HDR_AUTHORIZATION, type.getSchemeName()
 					+ " " + v); //$NON-NLS-1$
 		}
 
@@ -514,7 +541,7 @@
 				byte[] token = context.initSecContext(prevToken, 0,
 						prevToken.length);
 
-				conn.setRequestProperty(HDR_AUTHORIZATION, getType().name()
+				conn.setRequestProperty(HDR_AUTHORIZATION, getType().getSchemeName()
 						+ " " + Base64.encodeBytes(token)); //$NON-NLS-1$
 			} catch (GSSException e) {
 				IOException ioe = new IOException();
