diff -ur kaffe/kaffe/kaffe/main.c kaffe-patched/kaffe/kaffe/main.c
--- kaffe/kaffe/kaffe/main.c	2003-01-11 23:21:45.000000000 +0100
+++ kaffe-patched/kaffe/kaffe/main.c	2003-01-12 23:24:38.000000000 +0100
@@ -307,31 +307,36 @@
 			/* FIXME: skip, case handled by the calle script */
 		}
 #endif
-		else if (strcmp(argv[i], "-classpath") == 0) {
-			i++;
-			if (argv[i] == 0) {
-				dprintf(
-				    "Error: No path found for %s option.\n",
-				    "-classpath");
-				exit(1);
-			}
-			vmargs.classpath = argv[i];
-		}
-		else if (strcmp(argv[i], "-addclasspath") == 0) {
+/*                 else if (strcmp(argv[i], "-classpath") == 0) { */
+/*                         i++; */
+/*                         if (argv[i] == 0) { */
+/*                                 dprintf( */
+/*                                     "Error: No path found for %s option.\n", */
+/*                                     "-classpath"); */
+/*                                 exit(1); */
+/*                         } */
+/*                         vmargs.classpath = argv[i]; */
+/*                 } */
+		else if ((strcmp(argv[i], "-addclasspath") == 0)
+			 || (strcmp(argv[i], "-classpath") == 0)) {
 			char	*newcpath;
+			int      cpathlength;
 
 			i++;
 			if (argv[i] == 0) {
 				dprintf(
 				    "Error: No path found for %s option.\n",
-				    "-addclasspath");
+				    argv[i - 1]);
 				exit(1);
 			}
 
-			/* Get longer buffer FIXME: free old one */
-			if ((newcpath = malloc(strlen(vmargs.classpath)
-			    + strlen(path_separator)
-			    + strlen(argv[i]) + 1)) == NULL) {
+			cpathlength = strlen(vmargs.classpath)
+				+ strlen(path_separator)
+				+ strlen(argv[i])
+				+ 1;
+
+			/* Get longer buffer FIXME:  free the old one */
+			if ((newcpath = malloc(cpathlength)) == NULL) {
 				dprintf( "Error: out of memory.\n");
 				exit(1);
 			}
@@ -340,6 +345,8 @@
 			strcpy(newcpath, vmargs.classpath);
 			strcat(newcpath, path_separator);
 			strcat(newcpath, argv[i]);
+
+			/* set the new classpath */
 			vmargs.classpath = newcpath;
 		}
 		else if ((strncmp(argv[i], "-ss", 3) == 0) 
