diff --git a/main/slinfactory.c b/main/slinfactory.c
index 921edb0903b4ee27711aa05ad644ba7114422cbb..687a6c02dbc08df823621ac545a61267b3b2fd90 100644
--- a/main/slinfactory.c
+++ b/main/slinfactory.c
@@ -147,7 +147,7 @@ int ast_slinfactory_read(struct ast_slinfactory *sf, short *buf, size_t samples)
 
 		if (sf->holdlen) {
 			if (sf->holdlen <= ineed) {
-				memcpy(offset, sf->hold, sf->holdlen * sizeof(*offset));
+				memcpy(offset, sf->offset, sf->holdlen * sizeof(*offset));
 				sofar += sf->holdlen;
 				offset += sf->holdlen;
 				sf->holdlen = 0;