Index: /trunk/PS-IPP-Config/lib/PS/IPP/Config.pm
===================================================================
--- /trunk/PS-IPP-Config/lib/PS/IPP/Config.pm	(revision 24039)
+++ /trunk/PS-IPP-Config/lib/PS/IPP/Config.pm	(revision 24040)
@@ -564,6 +564,8 @@
 
     my $scheme = file_scheme($name); # The scheme, e.g., file://, path://
+
     if (defined $scheme and lc($scheme) eq 'neb') {
         $name = eval { $self->nebulous->create( $name ) };
+
         if ($@ or not defined $name) {
             carp "Unable to create Nebulous handle $name";
@@ -1261,11 +1263,23 @@
     $tess_dir = $self->convert_filename_absolute( $tess_dir ) or return undef;
 
-    unless ($self->file_exists( $outname )) {
-        my $outnameResolved = $self->file_create( $outname ) or return undef; # Resolved filename, for Nebulous
-        my $command = "$dvoImageExtract -D CATDIR $tess_dir $skycell_id -o $outnameResolved";
-        my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
-            run(command => $command, verbose => $verbose);
-        ( carp "Unable to perform dvoImageExtract for $tess_id $skycell_id\n" and return undef ) unless ($success and $self->file_exists( $outname ));
-    }
+    my $outnameResolved;
+
+    # check if file actually exists
+    if ($self->file_exists( $outname )) {
+	# double check that the file is not zero-length (eg: dvoImageExtract crashed)
+        $outnameResolved = $self->file_resolve( $outname, 1 ) or return undef; # Resolved filename, for Nebulous
+	my @stats = stat($outnameResolved);
+	if ($stats[7]) {
+	    return 1;
+	}
+    }
+
+    unless (defined $outnameResolved) {
+	$outnameResolved = $self->file_create( $outname ) or return undef; # Resolved filename, for Nebulous
+    }
+    my $command = "$dvoImageExtract -D CATDIR $tess_dir $skycell_id -o $outnameResolved";
+    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
+	run(command => $command, verbose => $verbose);
+    ( carp "Unable to perform dvoImageExtract for $tess_id $skycell_id\n" and return undef ) unless ($success and $self->file_exists( $outname ));
 
     return 1;
