diff --git a/lib/device.c b/lib/device.c
index 36b8201..fb104db 100644
--- a/lib/device.c
+++ b/lib/device.c
@@ -78,7 +78,7 @@ mISDN_open(void)
 	memset(dev, 0, sizeof(mISDNdev_t));
 	dev->fid = fid;
 	dev->isize = mISDN_INBUFFER_SIZE;
-	dev->inbuf = malloc(dev->isize);
+	dev->inbuf = malloc(2 * dev->isize);
 	if (!dev->inbuf) {
 		free(dev);
 		close(fid);
@@ -165,7 +165,7 @@ mISDN_remove_iframe(mISDNdev_t *dev, iframe_t *frm)
 	if (ep >= dev->iend)
 		dev->iend = (u_char *)frm;
 	else {
-		memcpy(frm, ep, dev->iend - ep);
+		memmove(frm, ep, dev->iend - ep);
 		dev->iend -= len; 
 	}
 	
