diff --git a/src/lib-sieve/sieve-interpreter.c b/src/lib-sieve/sieve-interpreter.c
index 91852c41fb9252acef0c4eaa13e5c92c9ebf8332..977f20263aa0f8b2e2c00b98a1e8708f135ee6e2 100644
--- a/src/lib-sieve/sieve-interpreter.c
+++ b/src/lib-sieve/sieve-interpreter.c
@@ -187,8 +187,10 @@ static bool sieve_interpreter_dump_operation
 	
 		if ( opcode->dump != NULL )
 			return opcode->dump(opcode, interp, interp->binary, &(interp->pc));
+		else if ( opcode->mnemonic != NULL )
+			printf("%s\n", opcode->mnemonic);
 		else
-			printf("<< UNSPECIFIED OPERATION >>\n");
+			return FALSE;
 			
 		return TRUE;
 	}		
@@ -224,7 +226,7 @@ bool sieve_interpreter_execute_operation
 		if ( opcode->execute != NULL )
 			return opcode->execute(opcode, interp, interp->binary, &(interp->pc));
 		else
-			printf("\n");
+			return FALSE;
 			
 		return TRUE;
 	}