diff --git a/src/main/java/io/ad/structs/DoubleLinkedList.java b/src/main/java/io/ad/structs/DoubleLinkedList.java
index 8c1df7a2222a9de2e8140dab2798ed42f044dda4..fc8dd4528fa70b3bfafe6b9d472b468e3ccf0b07 100644
--- a/src/main/java/io/ad/structs/DoubleLinkedList.java
+++ b/src/main/java/io/ad/structs/DoubleLinkedList.java
@@ -43,7 +43,8 @@ public class DoubleLinkedList<E> implements List<E> {
 		}
 		if (index == 0) {
 			ListNode newHead = new ListNode(element, null, head);
-			head.prev=newHead;
+			if (head!=null)
+				head.prev=newHead;
 			head = newHead;
 			if (size()==0) last=newHead;
 			size++;
@@ -140,7 +141,7 @@ public class DoubleLinkedList<E> implements List<E> {
 	           return next!=null;
 	        }
 	        public E next() {
-	           if (next==null) throw new NoSuchElementException();
+	           if (!hasNext()) throw new NoSuchElementException();
 	           E value = next.data;
 	           next = next.next;
 	           return value;