diff --git a/bin/macedit b/bin/macedit
new file mode 100755
index 0000000..23a17a2
--- /dev/null
+++ b/bin/macedit
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+PLAN9=${PLAN9:-/usr/local/plan9}
+bin=$PLAN9/bin
+
+file=$1
+
+# Blanks are problematic in filenames: just plumb
+# the file's content.
+if echo "$file" | grep -q " "
+then
+	base=$(basename "$file" | sed 's/ /_/g')
+	attr="action=showdata filename=/BadName/$base"
+	cat $file | "$bin/plumb" -i -d edit -a "$attr"
+else
+	"$bin/plumb" -d edit "$file"
+fi
diff --git a/mac/Plumb.app/Contents/MacOS/plumb b/mac/Plumb.app/Contents/MacOS/plumb
index f98cd2e..850ec0e 100755
--- a/mac/Plumb.app/Contents/MacOS/plumb
+++ b/mac/Plumb.app/Contents/MacOS/plumb
@@ -10,14 +10,5 @@
 
 for file in $($bin/macargv)
 do
-	# Blanks are problematic in filenames: just plumb
-	# the file's content.
-	if echo "$file" | grep -q " "
-	then
-		base=$(basename "$file" | sed 's/ /_/g')
-		attr="action=showdata filename=/BadName/$base"
-		cat $file | "$bin/plumb" -i -d edit -a "$attr"
-	else
-		"$bin/plumb" -d edit "$file"
-	fi
+	$bin/macedit "$file"
 done
diff --git a/src/cmd/devdraw/cocoa-screen.m b/src/cmd/devdraw/cocoa-screen.m
index 0335536..fc73814 100644
--- a/src/cmd/devdraw/cocoa-screen.m
+++ b/src/cmd/devdraw/cocoa-screen.m
@@ -159,6 +159,7 @@
 		detachDrawingThread:@selector(callservep9p:)
 		toTarget:[self class] withObject:nil];
 }
+
 - (void)windowDidBecomeKey:(id)arg
 {
 	getmousepos();
@@ -298,6 +299,41 @@
 	[win.content setHidden:NO];
 	[super deminiaturize:arg];
 }
+
+- (NSDragOperation)draggingEntered:(id)arg
+{
+	NSPasteboard *b;
+	NSDragOperation op;
+	
+	op = [arg draggingSourceOperationMask];
+	b = [arg draggingPasteboard];
+	
+	if([[b types] containsObject:NSFilenamesPboardType])
+	if(op&NSDragOperationLink)
+		return NSDragOperationLink;
+	
+	return NSDragOperationNone;
+}
+
+- (BOOL)performDragOperation:(id)arg
+{
+	NSPasteboard *b;
+	NSArray *files;
+	int i, n;
+
+	b = [arg draggingPasteboard];
+	if(![[b types] containsObject:NSFilenamesPboardType])
+		return NO;
+
+	files = [b propertyListForType:NSFilenamesPboardType];
+	n = [files count];
+	for(i=0; i<n; i++)
+	if(fork() == 0)
+		execl("macedit", "macedit", [[files objectAtIndex:i] UTF8String], nil);
+
+	return YES;
+}
+
 @end
 
 double
@@ -354,6 +390,9 @@
 #endif
 	[w setContentMinSize:NSMakeSize(128,128)];
 
+	[w registerForDraggedTypes:[NSArray arrayWithObjects: 
+		NSFilenamesPboardType, nil]];
+
 	win.ofs[0] = w;
 	win.ofs[1] = [[appwin alloc]
 		initWithContentRect:sr
