270,273c270,277
< 	    if (SvTRUE(ERRSV))
< 		warn("WARNING(Freezer method call failed): %"SVf"", ERRSV);
< 	    else if (i)
< 		val = newSVsv(POPs);
---
> 	    if (SvTRUE(ERRSV)) {
> 		/* don't want to warn user when we are calling non-default freezer 
> 		warn("WARNING(Freezer method call failed): %"SVf"", ERRSV); */
> 		}
> 	    else if (i) {
> 		  val = newSVsv(POPs);
> 		  //(void)sv_2mortal(val); - don't know if this is necessary
> 		}
275,276d278
< 	    if (i)
< 		(void)sv_2mortal(val);
745,748c747,763
< 	    if (toaster && SvPOK(toaster) && SvCUR(toaster)) {
< 		sv_catpvn(retval, "->", 2);
< 		sv_catsv(retval, toaster);
< 		sv_catpvn(retval, "()", 2);
---
> 	    if (SvOBJECT(SvRV(val)) && toaster && SvPOK(toaster) && SvCUR(toaster)) {
> 			dSP; ENTER; SAVETMPS; PUSHMARK(sp);
> 		    XPUSHs(val); PUTBACK;
> 		    i = perl_call_method(SvPVX(toaster), G_EVAL|G_SCALAR);
> 		    SPAGAIN;
> 		    if (SvTRUE(ERRSV)) {
> 		                 /* don't want to warn user when we are calling non-default toaster
> 				 warn("WARNING(Toaster method call failed): %"SVf"", ERRSV); */
> 			}
> 		    else if (i) {
> 				val = newSVsv(POPs);
> 				sv_catpvn(retval, "->", 2);
> 				sv_catsv(retval, toaster);
> 				sv_catpvn(retval, "()", 2);
> 				//(void)sv_2mortal(val); - not sure if this is necessary
> 			}
> 		    PUTBACK; FREETMPS; LEAVE;
