diff --git a/swaymsg/main.c b/swaymsg/main.c
index 18f17a59..dfc175a8 100644
--- a/swaymsg/main.c
+++ b/swaymsg/main.c
@@ -335,7 +335,7 @@ int main(int argc, char **argv) {
 			} else {
 				pretty_print(type, obj);
 			}
-			free(obj);
+			json_object_put(obj);
 		}
 	}
 	close(socketfd);