weston-dnd --help works
diff --git a/clients/dnd.c b/clients/dnd.c
index 620cfff..956c306 100644
--- a/clients/dnd.c
+++ b/clients/dnd.c
@@ -652,7 +652,14 @@
 {
 	struct display *d;
 	struct dnd *dnd;
-	int i;
+	int self_only = 0;
+
+	if (argc == 2 && !strcmp(argv[1], "--self-only"))
+		self_only = 1;
+	else if (argc > 1) {
+		printf("Usage: %s [OPTIONS]\n  --self-only\n", argv[0]);
+		return 1;
+	}
 
 	d = display_create(&argc, argv);
 	if (d == NULL) {
@@ -661,10 +668,8 @@
 	}
 
 	dnd = dnd_create(d);
-
-	for (i = 1; i < argc; i++)
-		if (strcmp("--self-only", argv[i]) == 0)
-			dnd->self_only = 1;
+	if (self_only)
+		dnd->self_only = 1;
 
 	display_run(d);