diff --git a/lib/SILOptimizer/Utils/Local.cpp b/lib/SILOptimizer/Utils/Local.cpp
index 9469e5d..0b49b82 100644
--- a/lib/SILOptimizer/Utils/Local.cpp
+++ b/lib/SILOptimizer/Utils/Local.cpp
@@ -54,8 +54,12 @@
 
   // If Ptr is refcounted itself, create the strong_retain and
   // return.
-  if (Ptr->getType().isReferenceCounted(B.getModule()))
-    return B.createStrongRetain(Loc, Ptr, B.getDefaultAtomicity());
+  if (Ptr->getType().isReferenceCounted(B.getModule())) {
+    if (Ptr->getType().is<UnownedStorageType>())
+      return B.createUnownedRetain(Loc, Ptr, B.getDefaultAtomicity());
+    else
+      return B.createStrongRetain(Loc, Ptr, B.getDefaultAtomicity());
+  }
 
   // Otherwise, create the retain_value.
   return B.createRetainValue(Loc, Ptr, B.getDefaultAtomicity());
@@ -74,8 +78,12 @@
   auto Loc = RegularLocation(SourceLoc());
 
   // If Ptr has reference semantics itself, create a strong_release.
-  if (Ptr->getType().isReferenceCounted(B.getModule()))
-    return B.createStrongRelease(Loc, Ptr, B.getDefaultAtomicity());
+  if (Ptr->getType().isReferenceCounted(B.getModule())) {
+    if (Ptr->getType().is<UnownedStorageType>())
+      return B.createUnownedRelease(Loc, Ptr, B.getDefaultAtomicity());
+    else
+      return B.createStrongRelease(Loc, Ptr, B.getDefaultAtomicity());
+  }
 
   // Otherwise create a release value.
   return B.createReleaseValue(Loc, Ptr, B.getDefaultAtomicity());
diff --git a/test/SILOptimizer/mandatory_inlining.swift b/test/SILOptimizer/mandatory_inlining.swift
index c1e3e96..d9f28e7 100644
--- a/test/SILOptimizer/mandatory_inlining.swift
+++ b/test/SILOptimizer/mandatory_inlining.swift
@@ -160,3 +160,17 @@
   _ = class_constrained_generic(c)
   // CHECK: return
 }
+
+// Make sure we don't crash.
+@_transparent
+public func mydo(_ what: @autoclosure () -> ()) {
+  what()
+}
+public class A {
+  public func bar() {}
+  public func foo(_ act: (@escaping () ->()) -> ()) {
+    act { [unowned self] in
+      mydo( self.bar() )
+    }
+  }
+}
