diff -urw gphoto2-2.4.9/gphoto2/main.c gphoto2-2.4.9_sk/gphoto2/main.c
--- gphoto2-2.4.9/gphoto2/main.c	2010-04-07 20:49:12.000000000 +0000
+++ gphoto2-2.4.9_sk/gphoto2/main.c	2010-05-05 11:57:50.000000000 +0000
@@ -97,6 +97,28 @@
 /* flag for SIGUSR2 handler */
 static volatile int end_next = 0;

+
+void loadSettings() {
+	FILE *pFile;
+	if((pFile = fopen("/tmp/gphoto_settings.txt", "r"))>0) {
+		char line[80];
+		char *key, *value;
+		fscanf(pFile, "%s", line);
+		fclose(pFile);
+		key=strtok(line, "=&");
+		while(key!=NULL) {
+			value=strtok(NULL, "=&");
+			printf("%s:=%s\n", key, value);
+			if(strcmp(key,"zoom")==0) {
+				set_config_action(&gp_params, key, value);
+				set_config_action(&gp_params, key, value); // correct overshoot
+			} else set_config_index_action(&gp_params, key, value);
+			key=strtok(NULL, "=&");
+		}
+	}
+}
+
+
 /*! \brief Copy string almost like strncpy, converting to lower case.
  *
  * This function behaves like strncpy, but
@@ -692,6 +714,8 @@
 	result = gp_camera_wait_for_event(gp_params.camera, waittime, type, &data, gp_params.context);
 	if (result == GP_ERROR_NOT_SUPPORTED) {
 		usleep(waittime*1000);
+		/* sk Canon PowerShot G1: keep from sleeping: */
+		get_config_action(&gp_params, "/main/status/model");
 		return GP_OK;
 	}
 	if (result != GP_OK)
@@ -813,7 +837,10 @@
 			}
 #endif
 			if (result == GP_ERROR_NOT_SUPPORTED) {
+				/* sk Canon PowerShot G1: replaced to make capturesizeclass=2 to SDRAM work as a daemon:
 				result = gp_camera_capture (gp_params.camera, type, &path, gp_params.context);
+				*/
+				result = action_camera_capture_preview(&gp_params);
 				if (result != GP_OK) {
 					cli_error_print(_("Could not capture image."));
 					return (result);
@@ -821,6 +848,7 @@
 				/* If my Canon EOS 10D is set to auto-focus and it is unable to
 				 * get focus lock - it will return with *UNKNOWN* as the filename.
 				 */
+				/* sk Canon PowerShot G1: commented:
 				if (glob_interval && strcmp(path.name, "*UNKNOWN*") == 0) {
 					if (!(gp_params.flags & FLAGS_QUIET)) {
 						printf (_("Capture failed (auto-focus problem?)...\n"));
@@ -831,6 +859,7 @@
 				result = save_captured_file (&path, download);
 				if (result != GP_OK)
 					break;
+				*/
 			}
 			if (result != GP_OK) {
 				cli_error_print(_("Could not capture."));
@@ -905,8 +934,11 @@
 			if (result != GP_OK)
 				break;
 			capture_now = 0;
-			if (!(gp_params.flags & FLAGS_QUIET))
+			if (!(gp_params.flags & FLAGS_QUIET)) {
 				printf (_("Awakened by SIGUSR1...\n"));
+				/* sk Canon PowerShot G1: load camera settings from text file: */
+				loadSettings();
+			}
 		}
 	}
 	/* The final capture will fall out of the loop into this case,
