diff --git a/Data/Graph/Generators/Random/WattsStrogatz.hs b/Data/Graph/Generators/Random/WattsStrogatz.hs
--- a/Data/Graph/Generators/Random/WattsStrogatz.hs
+++ b/Data/Graph/Generators/Random/WattsStrogatz.hs
@@ -110,7 +110,7 @@
     rewrite (i, j1) edges = do
       r <- uniform gen :: IO Double
       let j2 = floor $ r*((fromInteger.toInteger) n)
-      if (member (i, j2) edges || member (j2, i) edges)
+      if (((member (i, j2) edges) || (member (j2, i) edges)) || (i == j2)) 
         then rewrite (i, j1) edges
         else return $ swap (i, j1) (i, j2) edges
 
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,5 +1,11 @@
 ** 0.1.x
 
+0.1.3.0 --> 0.1.4.0
+==============
+
+Removed self loops from WattsStrogatz graph model
+Credits to @shrutihiray
+
 0.1.2.0 --> 0.1.2.1
 ===============
 
diff --git a/graph-generators.cabal b/graph-generators.cabal
--- a/graph-generators.cabal
+++ b/graph-generators.cabal
@@ -1,5 +1,5 @@
 name:                graph-generators
-version:             0.1.3.0
+version:             0.1.4.0
 synopsis:            Functions for generating structured or random FGL graphs
 description:         Generators for graphs.
                      Supports classic (constant-sized) graphs, deterministic Generators
